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 or page action popups, sidebars, options pages, 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() e setInterval(), 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
Para usar esta API vocĂȘ precisa ter a permissĂŁo "browserSettings".
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.
menus
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.