background

The background permission asks Chrome to start as soon as the user signs in to their device, and to keep running in the background even after every Chrome window has been closed. It is not the same as the "background" manifest key (which registers a service worker / background page).

What it does

  • Tells the OS to launch Chrome at user login so the extension's service worker can run as early as possible.
  • Keeps Chrome alive in the background after the last window is closed, so events the extension listens for (alarms, push messages, native-messaging traffic, etc.) continue to fire. The user sees a persistent Chrome icon in the system tray / menu bar.
  • Available on Windows, macOS, and Linux. It has no effect on ChromeOS (which manages session lifetime differently) and no effect when the user has disabled "Continue running background apps when Google Chrome is closed" in settings.

When to use it

Use it for extensions whose value depends on running continuously, even when the user isn't actively using Chrome.

Examples:

  • A chat or email client extension that needs to receive notifications when no Chrome window is open.
  • A monitoring tool that polls a remote service on a schedule.
  • A native-messaging bridge that brokers data between Chrome and a native helper application.

Manifest Declaration

The permission goes in the permissions array. It is independent of the "background" manifest key, which still has to be set if the extension actually needs a service worker.

{
  "name": "My Always-On Extension",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": [
    "background",
    "alarms"
  ],
  "background": {
    "service_worker": "background.js",
    "type": "module"
  }
}

Security & Privacy

Why is it medium risk?

By itself this permission grants no access to user data — its only effect is keeping Chrome (and therefore the extension's service worker) alive. The risk it adds is that any other permissions the extension holds remain effective even when the user has closed every Chrome window and might believe Chrome is no longer running.

Users can override it from chrome://settings/system ("Continue running background apps when Google Chrome is closed") regardless of what the extension declares.

API Usage Example

There is no API tied to this permission — declaring it just changes Chrome's lifecycle. The service worker code itself is the same as for any other extension:

// background.js — runs whenever the service worker is awake.

chrome.runtime.onInstalled.addListener(() => {
  // Wake the service worker every minute, even if no Chrome window is open.
  chrome.alarms.create('heartbeat', { periodInMinutes: 1 });
});

chrome.alarms.onAlarm.addListener((alarm) => {
  if (alarm.name === 'heartbeat') {
    console.log('Background heartbeat fired.');
  }
});

Extensions with the background permission

Here are some popular browser extensions that use the "background" permission. To explore more, try our Advanced search.

Permission Metrics

Popularity

Security Risk


Usage by Platform