JavaScript APIs

WebExtension JavaScript API может быть использован в фоновых скриптах расширения, а так же в любых других документах, поставляемых вместе с расширением, таких как  документы во всплывающих окнах после нажатия кнопок активации расширения browser action на панели инструментов или page action в строке адреса, боковой панели, страницах настроек или новых открытых вкладках. Некоторые из этих API могут быть доступны на встраиваемых в страницу скриптах (см. список в руководстве по встраиваемым скриптам).

Для использования отдельных более продвинутых API, необходимо запросить разрешения в manifest.json вашего дополнения.

Вы можете получить доступ к API, используя пространство имён browser:

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

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

Многие API выполняются асинхронно, возвращая Promise:

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

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

var setCookie = browser.cookies.set(
  {url: "/"}
);
setCookie.then(logCookie, logError);
Обратите внимание, что это отличается от расширений Google Chrome, которые используют пространство имён chrome вместо browser и колбэки для асинхронных функций вместо промисов.

Для поддержки портирования, реализация Firefox WebExtensions API так же поддерживает пространство имён chrome и использование колбэков. Это позволяет в большинстве случаев не изменять код, изначально написанный для Chrome.

Mozilla так же предоставляет полифилл, который позволяет коду, использующему browser и промисы, работать без изменений в Chrome: https://github.com/mozilla/webextension-polyfill.

Microsoft Edge использует пространство имен browser, но ещё не поддерживает, основанный на промисах асинхронный API. В Edge на данный момент асинхронные вызовы API должны использовать колбэки.

Не все браузеры поддерживают все API: детали см. Browser support for JavaScript APIs.

cookies

Позволяет  WebExtensions получить и установить куки ,а также сообщить об их изменении.

API reference documentation

downloads

Enables extensions to interact with the browser's download manager. You can use this API module to download files, cancel, pause, resume downloads, and show downloaded files in the file manager.

API reference documentation

tabs

Interact with the browser's tab system. You can use this API to get a list of opened tabs and to create, modify, and rearrange tabs in the browser.

API reference documentation

windows

Взаимодействие с окнами браузера. Вы можете использовать этот API, чтобы получить информацию об открытых окнах, а также открывать, изменять и закрывать окна. Вы также можете слушать события открытия, закрытия окна, и активировать события.

API reference documentation

webRequest

Добавляет обработчики событий на различных стадиях HTTP запроса. Обработчик получет детальную информацию о запросе и способен изменить или отменить запрос.

API reference documentation