refresh date: 2026-09-25 robots: noindex
Descrição
Use a API chrome.alarms para programar a execução de código periodicamente ou em um horário específico no futuro.
Permissões
alarmsManifesto
Para usar a API chrome.alarms, declare a permissão "alarms" no manifesto:
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Exemplos
Os exemplos a seguir mostram como usar e responder a um alarme. Para testar essa API, instale o exemplo da API Alarm do repositório chrome-extension-samples.
Definir um alarme
O exemplo a seguir define um alarme no service worker quando a extensão é instalada:
service-worker.js:
chrome.runtime.onInstalled.addListener(async ({ reason }) => {
if (reason !== 'install') {
return;
}
// Create an alarm so we have something to look at in the demo
await chrome.alarms.create('demo-default-alarm', {
delayInMinutes: 1,
periodInMinutes: 1
});
});
Responder a um alarme
O exemplo a seguir define o ícone da barra de ferramentas de ação com base no nome do alarme que foi acionado.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Tipos
Alarm
Propriedades
-
nome
string
Nome do alarme.
-
periodInMinutes
número optional
Se não for nulo, o alarme é recorrente e vai tocar novamente em
periodInMinutesminutos. -
persistAcrossSessions
booleano
Chrome 150+Se o alarme precisa persistir entre as sessões (reinicializações do navegador).
-
scheduledTime
número
Horário em que o alarme foi programado para ser acionado, em milissegundos após a época (por exemplo,
Date.now() + n). Por motivos de desempenho, o alarme pode ter sido atrasado por um período arbitrário além desse.
AlarmCreateInfo
Propriedades
-
delayInMinutes
número optional
Período em minutos após o qual o evento
onAlarmdeve ser acionado. -
nome
string opcional
Chrome 152+Nome do alarme.
-
periodInMinutes
número optional
Se definido, o evento onAlarm será acionado a cada
periodInMinutesminutos após o evento inicial especificado porwhenoudelayInMinutes. Se não for definido, o alarme será acionado apenas uma vez. -
persistAcrossSessions
booleano opcional
Chrome 150+Se o alarme deve persistir entre as sessões (reinicializações do navegador). No Chrome, o padrão é "true" para corresponder ao comportamento histórico, mas é recomendável definir isso explicitamente para maximizar a compatibilidade entre navegadores.
-
quando
número optional
O horário em que o alarme deve ser acionado, em milissegundos após a época (por exemplo,
Date.now() + n).
Métodos
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Limpa o alarme com o nome informado.
Parâmetros
-
nome
string opcional
O nome do alarme a ser apagado. O padrão é a string vazia.
-
callback
função optional
O parâmetro
callbacké semelhante a:(wasCleared: boolean) => void
-
wasCleared
booleano
-
Retorna
-
Promise<boolean>
Chrome 91+As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean | undefined>
Limpa todos os alarmes.
Parâmetros
-
callback
função optional
O parâmetro
callbacké semelhante a:(wasCleared?: boolean) => void
-
wasCleared
booleano opcional
-
Retorna
-
Promise<boolean | undefined>
Chrome 91+As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Cria um alarme. Próximo aos horários especificados por alarmInfo, o evento onAlarm é acionado. Se houver outro alarme com o mesmo nome (ou sem nome, se nenhum for especificado), ele será cancelado e substituído por este.
Para reduzir a carga na máquina do usuário, o Chrome limita os alarmes a no máximo uma vez por segundo, mas pode atrasá-los por um período arbitrário. Ou seja, definir delayInMinutes ou periodInMinutes como menos de 1 segundo não será aceito e vai causar um aviso. when pode ser definido para menos de 1 segundo após "agora" sem aviso, mas não vai fazer com que o alarme seja acionado por pelo menos 1 segundo.
Parâmetros
-
nome
string opcional
Nome opcional para identificar o alarme. O padrão é a string vazia.
-
alarmInfo
Descreve quando o alarme deve ser acionado. O horário inicial precisa ser especificado por
whenoudelayInMinutes(mas não ambos). SeperiodInMinutesestiver definido, o alarme será repetido a cadaperiodInMinutesminutos após o evento inicial. Se nemwhennemdelayInMinutesestiverem definidos para um alarme repetido,periodInMinutesserá usado como padrão paradelayInMinutes. -
callback
função optional
Chrome 111+O parâmetro
callbacké semelhante a:() => void
Retorna
-
Promessa<void>
Chrome 111+Promessa que é resolvida quando o alarme é criado.
As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Recupera detalhes sobre o alarme especificado.
Parâmetros
Retorna
-
Promise<Alarm | undefined>
Chrome 91+As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Recebe uma matriz de todos os alarmes.
Parâmetros
Retorna
-
Promise<Alarm[]>
Chrome 91+As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.