refresh date: 2026-09-25 robots: noindex
Description
Utilisez l'API chrome.alarms pour planifier l'exécution du code de manière périodique ou à un moment précis dans le futur.
Autorisations
alarmsFichier manifeste
Pour utiliser l'API chrome.alarms, déclarez l'autorisation "alarms" dans le fichier manifeste :
{
"name": "My extension",
...
"permissions": [
"alarms"
],
...
}
Exemples
Les exemples suivants montrent comment utiliser une alarme et y répondre. Pour essayer cette API, installez l'exemple d'API Alarm à partir du dépôt chrome-extension-samples.
Régler une alarme
L'exemple suivant définit une alarme dans le service worker lors de l'installation de l'extension :
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
});
});
Répondre à une alarme
L'exemple suivant définit l'icône de la barre d'outils d'action en fonction du nom de l'alarme qui s'est déclenchée.
service-worker.js :
chrome.alarms.onAlarm.addListener((alarm) => {
chrome.action.setIcon({
path: getIconPath(alarm.name),
});
});
Types
Alarm
Propriétés
-
nom
chaîne
Nom de cette alarme.
-
periodInMinutes
number facultatif
Si la valeur n'est pas nulle, l'alarme est récurrente et se déclenchera à nouveau dans
periodInMinutesminutes. -
persistAcrossSessions
booléen
Chrome 150+Indique si l'alarme doit persister d'une session à l'autre (redémarrages du navigateur).
-
scheduledTime
nombre
Heure à laquelle cette alarme devait se déclencher, en millisecondes depuis l'epoch (par exemple,
Date.now() + n). Pour des raisons de performances, l'alarme peut avoir été retardée d'une durée arbitraire au-delà de cette valeur.
AlarmCreateInfo
Propriétés
-
delayInMinutes
number facultatif
Durée en minutes après laquelle l'événement
onAlarmdoit se déclencher. -
nom
chaîne facultatif
Chrome 152 ou version ultérieureNom de cette alarme.
-
periodInMinutes
number facultatif
Si cette option est définie, l'événement onAlarm doit se déclencher toutes les
periodInMinutesminutes après l'événement initial spécifié parwhenoudelayInMinutes. Si ce champ n'est pas défini, l'alarme ne se déclenchera qu'une seule fois. -
persistAcrossSessions
boolean facultatif
Chrome 150+Indique si l'alarme doit persister d'une session à l'autre (redémarrages du navigateur). Dans Chrome, la valeur par défaut est "true" pour correspondre au comportement historique, mais vous devez la définir explicitement pour maximiser la compatibilité entre les navigateurs.
-
when
number facultatif
Heure à laquelle l'alarme doit se déclencher, en millisecondes depuis l'epoch (par exemple,
Date.now() + n).
Méthodes
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Efface l'alarme portant le nom indiqué.
Paramètres
-
nom
chaîne facultatif
Nom de l'alarme à effacer. La valeur par défaut est une chaîne vide.
-
callback
function facultatif
Le paramètre
callbackse présente comme suit :(wasCleared: boolean) => void
-
wasCleared
booléen
-
Renvoie
-
Promise<boolean>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean | undefined>
Efface toutes les alarmes.
Paramètres
-
callback
function facultatif
Le paramètre
callbackse présente comme suit :(wasCleared?: boolean) => void
-
wasCleared
boolean facultatif
-
Renvoie
-
Promise<boolean | undefined>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
Crée une alarme. L'événement onAlarm est déclenché à l'heure ou aux heures spécifiées par alarmInfo. S'il existe une autre alarme portant le même nom (ou sans nom si aucun n'est spécifié), elle sera annulée et remplacée par cette alarme.
Afin de réduire la charge sur l'ordinateur de l'utilisateur, Chrome limite les alarmes à une fois par seconde au maximum, mais peut les retarder d'un montant arbitraire. En d'autres termes, si vous définissez delayInMinutes ou periodInMinutes sur une valeur inférieure à une seconde, elle ne sera pas prise en compte et un avertissement sera généré. when peut être défini sur moins d'une seconde après "maintenant" sans avertissement, mais l'alarme ne se déclenchera pas avant au moins une seconde.
Paramètres
-
nom
chaîne facultatif
Nom facultatif permettant d'identifier cette alarme. La valeur par défaut est une chaîne vide.
-
alarmInfo
Décrit quand l'alarme doit se déclencher. L'heure initiale doit être spécifiée par
whenoudelayInMinutes(mais pas les deux). SiperiodInMinutesest défini, l'alarme se répète toutes lesperiodInMinutesminutes après l'événement initial. Si niwhen, nidelayInMinutesne sont définis pour une alarme récurrente,periodInMinutesest utilisé par défaut pourdelayInMinutes. -
callback
function facultatif
Chrome 111 ou version ultérieureLe paramètre
callbackse présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 111 ou version ultérieurePromesse qui se résout lorsque l'alarme a été créée.
Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Récupère les détails de l'alarme spécifiée.
Paramètres
Renvoie
-
Promise<Alarm | undefined>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Récupère un tableau de toutes les alarmes.
Paramètres
Renvoie
-
Promise<Alarm[]>
Chrome 91 ou version ultérieureLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.