chrome.alarms

refresh date: 2026-09-25 robots: noindex

Descripción

Usa la API de chrome.alarms para programar la ejecución de código de forma periódica o en un momento específico en el futuro.

Permisos

alarms

Manifiesto

Para usar la API de chrome.alarms, declara el permiso "alarms" en el manifiesto:

{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}

Ejemplos

En los siguientes ejemplos, se muestra cómo usar una alarma y responder a ella. Para probar esta API, instala el ejemplo de la API de Alarm desde el repositorio chrome-extension-samples.

Cómo establecer una alarma

En el siguiente ejemplo, se configura una alarma en el service worker cuando se instala la extensión:

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
  });
});

Cómo responder a una alarma

En el siguiente ejemplo, se establece el ícono de la barra de herramientas de acciones según el nombre de la alarma que se activó.

service-worker.js:

chrome.alarms.onAlarm.addListener((alarm) => {
  chrome.action.setIcon({
    path: getIconPath(alarm.name),
  });
});

Tipos

Alarm

Propiedades

  • nombre

    string

    Es el nombre de esta alarma.

  • periodInMinutes

    number opcional

    Si no es nulo, la alarma es recurrente y volverá a sonar en periodInMinutes minutos.

  • persistAcrossSessions

    booleano

    Chrome 150 o versiones posteriores

    Indica si la alarma debe persistir entre sesiones (reinicios del navegador).

  • scheduledTime

    número

    Es la hora en la que se programó la activación de esta alarma, en milisegundos transcurridos desde el tiempo de referencia (p.ej., Date.now() + n). Por motivos de rendimiento, es posible que la alarma se haya retrasado una cantidad arbitraria más allá de este valor.

AlarmCreateInfo

Propiedades

  • delayInMinutes

    number opcional

    Es el período, en minutos, después del cual se debe activar el evento onAlarm.

  • nombre

    string opcional

    Chrome 152 y versiones posteriores

    Es el nombre de esta alarma.

  • periodInMinutes

    number opcional

    Si se establece, el evento onAlarm debería activarse cada periodInMinutes minutos después del evento inicial especificado por when o delayInMinutes. Si no se establece, la alarma solo se activará una vez.

  • persistAcrossSessions

    booleano opcional

    Chrome 150 o versiones posteriores

    Indica si la alarma debe persistir entre sesiones (reinicios del navegador). En Chrome, el valor predeterminado es verdadero para que coincida con el comportamiento histórico, pero debes establecerlo de forma explícita para maximizar la compatibilidad entre navegadores.

  • cuándo

    number opcional

    Es la hora en la que se debe activar la alarma, en milisegundos después de la época (p.ej., Date.now() + n).

Métodos

clear()

Promise
chrome.alarms.clear(
  name?: string,
  callback?: function,
)
: Promise<boolean>

Borra la alarma con el nombre determinado.

Parámetros

  • nombre

    string opcional

    Es el nombre de la alarma que se borrará. La configuración predeterminada es la cadena vacía.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (wasCleared: boolean) => void

    • wasCleared

      booleano

Muestra

  • Promise<boolean>

    Chrome 91 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

clearAll()

Promise
chrome.alarms.clearAll(
  callback?: function,
)
: Promise<boolean | undefined>

Borra todas las alarmas.

Parámetros

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (wasCleared?: boolean) => void

    • wasCleared

      booleano opcional

Muestra

  • Promise<boolean | undefined>

    Chrome 91 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

create()

Promise
chrome.alarms.create(
  name?: string,
  alarmInfo: AlarmCreateInfo,
  callback?: function,
)
: Promise<void>

Crea una alarma. Cerca de las horas especificadas por alarmInfo, se activa el evento onAlarm. Si hay otra alarma con el mismo nombre (o sin nombre, si no se especifica ninguno), se cancelará y se reemplazará por esta alarma.

Para reducir la carga en la máquina del usuario, Chrome limita las alarmas a una vez por segundo como máximo, pero puede retrasarlas una cantidad arbitraria más. Es decir, no se respetará la configuración de delayInMinutes o periodInMinutes en menos de 1 segundo y se generará una advertencia. when se puede configurar para que se active menos de 1 segundo después de "ahora" sin advertencia, pero no hará que la alarma se active durante al menos 1 segundo.

Parámetros

  • nombre

    string opcional

    Nombre opcional para identificar esta alarma. La configuración predeterminada es la cadena vacía.

  • alarmInfo

    Describe cuándo se debe activar la alarma. La hora inicial se debe especificar con when o delayInMinutes (pero no con ambos). Si se establece periodInMinutes, la alarma se repetirá cada periodInMinutes minutos después del evento inicial. Si no se configuran when ni delayInMinutes para una alarma repetitiva, se usa periodInMinutes como el valor predeterminado de delayInMinutes.

  • callback

    función opcional

    Chrome 111 y versiones posteriores

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promise<void>

    Chrome 111 y versiones posteriores

    Es una promesa que se resuelve cuando se crea la alarma.

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

get()

Promise
chrome.alarms.get(
  name?: string,
  callback?: function,
)
: Promise<Alarm | undefined>

Recupera detalles sobre la alarma especificada.

Parámetros

  • nombre

    string opcional

    Es el nombre de la alarma que se obtendrá. La configuración predeterminada es la cadena vacía.

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (alarm?: Alarm) => void

Muestra

  • Promise<Alarm | undefined>

    Chrome 91 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

getAll()

Promise
chrome.alarms.getAll(
  callback?: function,
)
: Promise<Alarm[]>

Obtiene un array de todas las alarmas.

Parámetros

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    (alarms: Alarm[]) => void

Muestra

  • Promise<Alarm[]>

    Chrome 91 y versiones posteriores

    Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.

Eventos

onAlarm

chrome.alarms.onAlarm.addListener(
  callback: function,
)

Se activa cuando transcurre una alarma. Es útil para las páginas de eventos.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (alarm: Alarm) => void