JavaScript APIs

JavaScript APIs for WebExtensions can be used inside the extension's background scripts and in any other documents bundled with the extension, including browser action (en-US) or page action (en-US) popups, sidebars (en-US), options pages (en-US), or new tab pages. A few of these APIs can also be accessed by an extension's content scripts (see the list in the content script guide).

To use the more powerful APIs you need to request permission in your extension's manifest.json.

You can access the APIs using the browser namespace:

function logTabs(tabs) {
  console.log(tabs);
}

browser.tabs.query({currentWindow: true}, logTabs);

Many of the APIs are asynchronous, returning a Promise:

function logCookie(c) {
  console.log(c);
}

function logError(e) {
  console.error(e);
}

var setCookie = browser.cookies.set(
  {url: "https://developer.mozilla.org/"}
);
setCookie.then(logCookie, logError);

Note that this is different from Google Chrome's extension system, which uses the chrome namespace instead of browser, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions APIs supports chrome and callbacks as well as browser and promises. Mozilla has also written a polyfill which enables code that uses browser and promises to work unchanged in Chrome: https://github.com/mozilla/webextension-polyfill.

Firefox also implements these APIs under the chrome namespace using callbacks. This allows code written for Chrome to run largely unchanged in Firefox for the APIs documented here.

Microsoft Edge uses the browser namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.

Not all browsers support all the APIs: for the details, see Browser support for JavaScript APIs.

alarms

Executar um código agendado para um horário específico no futuro. Isto é como o setTimeout() (en-US) e setInterval() (en-US), exceto essas funções não funcionam no segundo plano com páginas carregadas sob demanda.

bookmarks

A API WebExtensions bookmarks permite uma extensão interagir e manipular o sistema de favoritos do navegador. Você pode pode usá-lo para favoritar páginas, obter favoritos existentes e, editar, remover ou organizar os favoritos.

browserAction

Adiciona um botão a barra de ferramentas do navegador.

browserSettings

Habilita uma extensão para modificar certas configurações globais do navegador. Cada propriedade desta API é um objeto types.BrowserSetting, provendo a capacidade de modificar uma configuração particular.Devido estas serem configurações globais, é possível haver conflito entre extensões. Veja a documentação BrowserSetting.set() para detalhes de como ligar com conflitos .

browsingData

Habilita extensões a limpar os dados que estão acumulados enquando o usuário navega.

clipboard

A API de área de transferência habilita uma extensão para copiar itens para a área de transferência do sistema. Atualmente a API suporta apenas a cópia de imagens, mas é pretendido suportar a cópia de texto e HTML no futuro.

commands

Escuta por usuário executando comandos que você registrou usando o commands manifest.json key.

contentScripts

Use esta API para registrar o conteúdo de scripts. Registrando um conteúdo de scripts instrui o navegador para inserir conteúdo de script fornecido em páginas que batem com um padrão de URL fornecida.

contextualIdentities

Trabalhar com identidades contextuais: listar, criar, remover e atualizar identidades contextuais.

cookies

Habilita extensões a obter e atribuir cookies, e ser notificado quando eles mudam.

Adicione itens ao sistema de menu do navegador.

tabs

Interact with the browser's tab system.

tema

Permite que extensões do navegador alterem seu tema.