chrome.runtime

дата обновления: 2026-09-25 robots: noindex

Описание

Use the chrome.runtime API to retrieve the service worker, return details about the manifest, and listen for and respond to events in the extension lifecycle. You can also use this API to convert the relative path of URLs to fully-qualified URLs.

Обзор

API среды выполнения предоставляет методы для поддержки ряда функциональных возможностей, которые могут использовать ваши расширения:

Передача сообщений
Your extension can communicate with different contexts within your extension and also with other extensions using these methods and events: connect() , onConnect , onConnectExternal , sendMessage() , onMessage and onMessageExternal . In addition, your extension can pass messages to native applications on the user's device using connectNative() and sendNativeMessage() .
Доступ к метаданным расширений и платформ.
Эти методы позволяют получить несколько конкретных фрагментов метаданных о расширении и платформе. К этой категории относятся методы getManifest() и getPlatformInfo() .
Управление жизненным циклом расширений и их опциями.
These properties let you perform some meta-operations on the extension, and display the options page. Methods and events in this category include onInstalled , onStartup , openOptionsPage() , reload() , requestUpdateCheck() , and setUninstallURL() .
Вспомогательные утилиты
Эти методы предоставляют такие возможности, как преобразование внутренних представлений ресурсов во внешние форматы. К методам этой категории относится getURL() .
утилиты режима киоска
Эти методы доступны только в ChromeOS и существуют в основном для поддержки киосков. К методам этой категории относятся restart и restartAfterDelay .

Разрешения

Большинство методов Runtime API не требуют каких-либо разрешений, за исключением sendNativeMessage и connectNative , для которых требуется разрешение nativeMessaging .

Манифест

В следующем примере показано, как объявить разрешение nativeMessaging в манифесте:

manifest.json:

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

Варианты использования

Добавить изображение на веб-страницу

Для того чтобы веб-страница могла получить доступ к ресурсу, размещенному на другом домене, она должна указать полный URL-адрес ресурса (например <img src="https://example.com/logo.png"> ). То же самое относится и к включению ресурса расширения на веб-страницу. Два отличия заключаются в том, что ресурсы расширения должны быть доступны как веб-ресурсы , и что обычно за внедрение ресурсов расширения отвечают скрипты контента.

In this example, the extension will add logo.png to the page that the content script is being injected into by using runtime.getURL() to create a fully-qualified URL. But first, the asset must be declared as a web accessible resource in the manifest.

manifest.json:

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "logo.png" ],
      "matches": [ "https://*/*" ]
    }
  ],
  ...
}

content.js:

{ // Block used to avoid setting global variables
  const img = document.createElement('img');
  img.src = chrome.runtime.getURL('logo.png');
  document.body.append(img);
}

Отправка данных из сервис-воркера в скрипт контента.

It's common for an extension's content scripts to need data managed by another part of the extension, like the service worker. Much like two browser windows opened to the same web page, these two contexts cannot directly access each other's values. Instead, the extension can use message passing to coordinate across these different contexts.

In this example, the content script needs some data from the extension's service worker to initialize its UI. To get this data, it passes a get-user-data message to the service worker, and it responds with a copy of the user's information.

content.js:

// 1. Send a message to the service worker requesting the user's data
chrome.runtime.sendMessage('get-user-data', (response) => {
  // 3. Got an asynchronous response with the data from the service worker
  console.log('received user data', response);
  initializeUI(response);
});

background.js:

// Example of a simple user data object
const user = {
  username: 'demo-user'
};

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  // 2. A page requested user data, respond with a copy of `user`
  if (message === 'get-user-data') {
    sendResponse(user);
  }
});

Соберите отзывы об удалении.

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

background.js:

chrome.runtime.onInstalled.addListener(details => {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});

Примеры расширений

Дополнительные примеры использования API среды выполнения см. в демонстрационном примере Manifest V3 - Web Accessible Resources .

Типы

ContextFilter

Chrome 114+

A filter to match against certain extension contexts. Matching contexts must match all specified filters; any filter that is not specified matches all available contexts. Thus, a filter of `{}` will match all available contexts.

Характеристики

  • contextIds

    строка[] необязательный

  • contextTypes

    ContextType [] необязательный

  • documentIds

    строка[] необязательный

  • documentOrigins

    строка[] необязательный

  • documentUrls

    строка[] необязательный

  • frameIds

    число[] необязательно

  • инкогнито

    логический необязательный

  • tabIds

    число[] необязательно

  • windowIds

    число[] необязательно

ContextType

Chrome 114+

Перечисление

"ТАБ"
Указывает тип контекста в виде вкладки.

"НЕОЖИДАННО ВОЗНИКНУТЬ"
Указывает тип контекста как всплывающее окно расширения.

"ФОН"
Указывает тип контекста как сервисный работник.

"OFFSCREEN_DOCUMENT"
Указывает тип контекста как документ, находящийся за пределами видимой области экрана.

"БОКОВАЯ ПАНЕЛЬ"
Указывает тип контекста в виде боковой панели.

"ИНСТРУМЕНТЫ_РАЗРАБОТЧИКА"
Указывает тип контекста как инструменты разработчика.

ExtensionContext

Chrome 114+

Контекст, содержащий контент расширения.

Характеристики

  • контекстId

    нить

    Уникальный идентификатор для данного контекста

  • contextType

    Это соответствует определенному типу контекста.

  • documentId

    строка необязательный

    UUID документа, связанного с данным контекстом, или undefined, если данный контекст размещен не в документе.

  • documentOrigin

    строка необязательный

    Источник документа, связанного с данным контекстом, или не определен, если контекст не размещен в документе.

  • documentUrl

    строка необязательный

    URL-адрес документа, связанного с данным контекстом, или undefined, если контекст не размещен в документе.

  • frameId

    число

    Идентификатор фрейма для данного контекста или -1, если данный контекст не размещен во фрейме.

  • инкогнито

    логический

    Связан ли данный контекст с профилем инкогнито.

  • tabId

    число

    Идентификатор вкладки для данного контекста или -1, если данный контекст не размещен во вкладке.

  • windowId

    число

    Идентификатор окна для данного контекста или -1, если данный контекст не размещен в окне.

ExtensionLoadDetails

В ожидании

Подробная информация о событии загрузки расширения.

Характеристики

  • предыдущая версия

    строка необязательный

    Указывает на предыдущую версию расширения, которая только что была обновлена. Эта опция присутствует только в том случае, если в поле «reason» указано «update».

  • причина

    Причина отправки данного сообщения.

MessageSender

Объект, содержащий информацию о контексте скрипта, отправившего сообщение или запрос.

Характеристики

  • documentId

    строка необязательный

    Chrome 106+

    UUID документа, открывшего соединение.

  • жизненный цикл документа

    строка необязательный

    Chrome 106+

    Жизненный цикл документа, открывшего соединение на момент создания порта. Обратите внимание, что состояние жизненного цикла документа могло измениться с момента создания порта.

  • frameId

    число необязательно

    Кадр , установивший соединение. 0 для кадров верхнего уровня, положительное значение для дочерних кадров. Это значение будет установлено только при установке tab .

  • идентификатор

    строка необязательный

    Идентификатор расширения, открывшего соединение, если таковое имелось.

  • нативное приложение

    строка необязательный

    Chrome 74+

    Название нативного приложения, установившего соединение, если таковое имелось.

  • источник

    строка необязательный

    Chrome 80+

    The origin of the page or frame that opened the connection. It can vary from the url property (eg, about:blank) or can be opaque (eg, sandboxed iframes). This is useful for identifying if the origin can be trusted if we can't immediately tell from the URL.

  • вкладка

    Вкладка ( необязательно)

    The tabs.Tab which opened the connection, if any. This property will only be present when the connection was opened from a tab (including content scripts), and only if the receiver is an extension, not an app.

  • tlsChannelId

    строка необязательный

    Идентификатор TLS-канала страницы или фрейма, открывшего соединение, если это запрошено расширением и если он доступен.

  • url

    строка необязательный

    URL страницы или фрейма, открывшего соединение. Если отправитель находится во фрейме, будет указан URL фрейма, а не URL страницы, на которой он размещен.

OnInstalledReason

Chrome 44+

Причина отправки данного сообщения.

Перечисление

"установить"
Указывает в качестве причины события установку.

"обновлять"
Указывается причина события как обновление расширения.

"chrome_update"
Указывает в качестве причины события обновление Chrome.

"shared_module_update"
Указывается причина события как обновление общего модуля.

OnLoadedReason

В ожидании

Причина отправки данного сообщения.

Перечисление

"установить"
Расширение было недавно установлено.

"обновлять"
Расширение было перезагружено после обновления.

"browser_update"
Браузер был обновлен до новой версии.

"давать возможность"
Расширение было повторно включено из отключенного состояния.

"запускать"
Расширение загружается во время запуска браузера.

"перезагрузка"
Расширение было перезагружено (например, с помощью chrome.runtime.reload() или пользователь перезагрузил расширение вручную).

OnRestartRequiredReason

Chrome 44+

The reason that the event is being dispatched. 'app_update' is used when the restart is needed because the application is updated to a newer version. 'os_update' is used when the restart is needed because the browser/OS is updated to a newer version. 'periodic' is used when the system runs for more than the permitted uptime set in the enterprise policy.

Перечисление

"app_update"
Указывает в качестве причины события обновление приложения.

"os_update"
Указывает в качестве причины события обновление операционной системы.

"периодический"
Указывается причина события: периодический перезапуск приложения.

PlatformArch

Chrome 44+

Архитектура процессора машины.

Перечисление

"рука"
Указывает архитектуру процессора как arm.

"arm64"
Указывает архитектуру процессора как arm64.

"x86-32"
Указывает архитектуру процессора как x86-32.

"x86-64"
Указывает архитектуру процессора как x86-64.

"мипсы"
Указывает архитектуру процессора в формате MIPS.

"mips64"
Указывает архитектуру процессора как mips64.

"riscv64"
Указывает архитектуру процессора как riscv64.

PlatformInfo

Объект, содержащий информацию о текущей платформе.

Характеристики

  • арка

    Архитектура процессора машины.

  • nacl_arch
    Устарело с версии Chrome 149.

    Этот атрибут устарел после полного удаления Native Client.

    Архитектура нативного клиента. На некоторых платформах она может отличаться от архитектуры.

  • Операционная система, на которой работает Chrome.

PlatformNaclArch

Chrome 44+ Устарело с версии Chrome 149

Данный перечисление устарело после полного удаления Native Client.

Архитектура нативного клиента. На некоторых платформах она может отличаться от архитектуры.

Перечисление

"рука"
Указывает архитектуру клиентского приложения как arm.

"x86-32"
Указывается архитектура нативного клиента как x86-32.

"x86-64"
Указывается архитектура нативного клиента как x86-64.

"мипсы"
Указывает архитектуру нативного клиента как MIPS.

"mips64"
Указывает архитектуру нативного клиента как mips64.

PlatformOs

Chrome 44+

Операционная система, на которой работает Chrome.

Перечисление

"мак"
Указывает операционную систему MacOS.

"победить"
Указывает операционную систему Windows.

"андроид"
Указывает операционную систему Android.

"кросс"
Указывает операционную систему Chrome.

"линук"
Указывает операционную систему Linux.

"openbsd"
Указывает операционную систему OpenBSD.

Port

Объект, обеспечивающий двустороннюю связь с другими страницами. Дополнительную информацию см. в разделе «Долгосрочные соединения» .

Характеристики

  • имя

    нить

    Имя порта, указанное в вызове функции runtime.connect .

  • onDisconnect

    Событие<functionvoidvoid>

    Fired when the port is disconnected from the other end(s). runtime.lastError may be set if the port was disconnected by an error. If the port is closed via disconnect , then this event is only fired on the other end. This event is fired at most once (see also Port lifetime ).

    Функция onDisconnect.addListener выглядит следующим образом:

    (callback: function) => {...}

    • перезвонить

      функция

      Параметр callback выглядит следующим образом:

      (port: Port) => void

  • onMessage

    Событие<functionvoidvoid>

    Это событие срабатывает при вызове метода postMessage с другой стороны порта.

    Функция onMessage.addListener выглядит следующим образом:

    (callback: function) => {...}

    • перезвонить

      функция

      Параметр callback выглядит следующим образом:

      (message: any, port: Port) => void

      • сообщение

        любой

      • порт
  • отправитель

    MessageSender (необязательно)

    Это свойство будет присутствовать только на портах, передаваемых слушателям onConnect / onConnectExternal / onConnectNative .

  • отключить

    пустота

    Немедленно отключите порт. Вызов метода disconnect() для уже отключенного порта не имеет никакого эффекта. После отключения порта новые события на этот порт отправляться не будут.

    Функция disconnect выглядит следующим образом:

    () => {...}

  • postMessage

    пустота

    Отправьте сообщение на другой конец порта. Если порт разорвётся, будет выдана ошибка.

    Функция postMessage выглядит следующим образом:

    (message: any) => {...}

    • сообщение

      любой

      Chrome 52+

      Сообщение для отправки. Этот объект должен быть пригоден для преобразования в формат JSON.

RequestUpdateCheckStatus

Chrome 44+

Результат проверки обновлений.

Перечисление

"задушен"
Указывает на то, что проверка состояния была ограничена по времени. Это может произойти после многократных проверок в течение короткого промежутка времени.

"no_update"
Указывает, что для установки нет доступных обновлений.

"update_available"
Указывает на наличие доступного обновления для установки.

Характеристики

id

Идентификатор расширения/приложения.

Тип

нить

lastError

Populated with an error message if calling an API function fails; otherwise undefined. This is only defined within the scope of that function's callback. If an error is produced, but runtime.lastError is not accessed within the callback, a message is logged to the console listing the API function that produced the error. API functions that return promises do not set this property.

Тип

объект

Характеристики

  • сообщение

    строка необязательный

    Подробности о произошедшей ошибке.

Методы

connect()

chrome.runtime.connect(
  extensionId?: string,
  connectInfo?: object,
)
: Port

Попытки связать обработчики событий внутри расширения (например, фоновой страницы) или других расширений/приложений. Это полезно для скриптов контента, подключающихся к процессам своих расширений, для межприложенийного/межрасширенного взаимодействия и веб-сообщений . Обратите внимание, что это не подключается к обработчикам событий внутри скрипта контента. Расширения могут подключаться к скриптам контента, встроенным во вкладки, через tabs.connect .

Параметры

  • extensionId

    строка необязательный

    Идентификатор расширения, к которому нужно подключиться. Если он не указан, будет предпринята попытка подключения к вашему собственному расширению. Обязательно при отправке сообщений с веб-страницы для веб-мессенджера .

  • connectInfo

    объект необязательный

    • includeTlsChannelId

      логический необязательный

      Будет ли идентификатор TLS-канала передаваться в функцию onConnectExternal для процессов, ожидающих события подключения.

    • имя

      строка необязательный

      Этот параметр будет передан в функцию onConnect для процессов, которые ожидают события подключения.

Возвраты

  • Порт, через который можно отправлять и получать сообщения. Событие onDisconnect этого порта срабатывает, если расширение не существует.

connectNative()

chrome.runtime.connectNative(
  application: string,
)
: Port

Подключается к нативному приложению на хост-машине. Для этого метода требуется разрешение "nativeMessaging" . Дополнительную информацию см. в разделе "Native Messaging ".

Параметры

  • приложение

    нить

    Название зарегистрированного приложения, к которому необходимо подключиться.

Возвраты

  • Порт, через который приложение может отправлять и получать сообщения.

getBackgroundPage()

Promise Foreground only (Устарело с Chrome 133)
chrome.runtime.getBackgroundPage(
  callback?: function,
)
: Promise<Window | undefined>

В расширениях MV3 отсутствуют фоновые страницы.

Retrieves the JavaScript 'window' object for the background page running inside the current extension/app. If the background page is an event page, the system will ensure it is loaded before calling the callback. If there is no background page, an error is set.

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    (backgroundPage?: Window) => void

    • фоновая страница

      Окно (по желанию)

      Объект JavaScript 'window' для фоновой страницы.

Возвраты

  • Promise<Window | undefined>

    Chrome 99+

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

getManifest()

chrome.runtime.getManifest(): object

Возвращает подробную информацию о приложении или расширении из манифеста. Возвращаемый объект представляет собой сериализацию полного файла манифеста .

Возвраты

  • объект

    Подробности манифеста.

getPackageDirectoryEntry()

Promise Foreground only
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)
: Promise<DirectoryEntry>

Возвращает объект DirectoryEntry для каталога пакета.

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    (directoryEntry: DirectoryEntry) => void

    • directoryEntry

      Запись каталога

Возвраты

  • Promise<DirectoryEntry>

    Chrome 122+

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

getPlatformInfo()

Обещать
chrome.runtime.getPlatformInfo(
  callback?: function,
)
: Promise<PlatformInfo>

Возвращает информацию о текущей платформе.

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    (platformInfo: PlatformInfo) => void

Возвраты

  • Promise< PlatformInfo >

    Chrome 99+

    Обещание, которое выполняется после предоставления информации о текущей платформе.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

getURL()

chrome.runtime.getURL(
  path: string,
)
: string

Преобразует относительный путь внутри каталога установки приложения/расширения в полный URL-адрес.

Параметры

  • путь

    нить

    Путь к ресурсу внутри приложения/расширения, выраженный относительно каталога его установки.

Возвраты

  • нить

    Полный URL-адрес ресурса.

getVersion()

Chrome 143+
chrome.runtime.getVersion(): string

Возвращает версию расширения, указанную в манифесте.

Возвраты

  • нить

    Версия расширения.

openOptionsPage()

Обещать
chrome.runtime.openOptionsPage(
  callback?: function,
)
: Promise<void>

По возможности откройте страницу настроек вашего расширения.

The precise behavior may depend on your manifest's options_ui or options_page key, or what Chrome happens to support at the time. For example, the page may be opened in a new tab, within chrome://extensions, within an App, or it may just focus an open options page. It will never cause the caller page to reload.

Если ваше расширение не указывает страницу настроек или Chrome не смог её создать по какой-либо другой причине, функция обратного вызова установит lastError .

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 99+

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

reload()

chrome.runtime.reload(): void

Перезагружает приложение или расширение. Этот метод не поддерживается в режиме киоска. Для режима киоска используйте метод chrome.runtime.restart().

requestUpdateCheck()

Обещать
chrome.runtime.requestUpdateCheck(
  callback?: function,
)
: Promise<object>

Просьба немедленно проверить наличие обновлений для данного приложения/расширения.

Important : Most extensions/apps should not use this method, since Chrome already does automatic checks every few hours, and you can listen for the runtime.onUpdateAvailable event without needing to call requestUpdateCheck.

Этот метод целесообразно вызывать только в очень ограниченных случаях, например, если ваше расширение взаимодействует с серверной частью, и эта часть определила, что версия клиентского расширения сильно устарела, и вы хотите предложить пользователю обновить её. Большинство других способов использования requestUpdateCheck, таких как безусловный вызов на основе повторяющегося таймера, вероятно, лишь приведут к нерациональному использованию ресурсов клиента, сети и сервера.

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

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    (result: object) => void

    • результат

      объект

      Chrome 109+

      Объект RequestUpdateCheckResult, содержащий статус проверки обновления и любые подробности результата, если обновление доступно.

      • Результат проверки обновлений.

      • версия

        строка необязательный

        Если доступно обновление, здесь указана версия доступного обновления.

Возвраты

  • Promise<object>

    Chrome 109+

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

restart()

chrome.runtime.restart(): void

Перезагрузите устройство ChromeOS, если приложение работает в режиме киоска. В противном случае, ничего не произойдет.

restartAfterDelay()

Promise Chrome 53+
chrome.runtime.restartAfterDelay(
  seconds: number,
  callback?: function,
)
: Promise<void>

Restart the ChromeOS device when the app runs in kiosk mode after the given seconds. If called again before the time ends, the reboot will be delayed. If called with a value of -1, the reboot will be cancelled. It's a no-op in non-kiosk mode. It's only allowed to be called repeatedly by the first extension to invoke this API.

Параметры

  • секунд

    число

    Время ожидания в секундах перед перезагрузкой устройства или -1 для отмены запланированной перезагрузки.

  • перезвонить

    функция необязательна

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 99+

    Обещание, которое срабатывает, когда запрос на перезапуск успешно переносится на другое время.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

sendMessage()

Обещать
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)
: Promise<any>

Отправляет одно сообщение обработчикам событий внутри вашего расширения или другого расширения/приложения. Аналогично runtime.connect , но отправляет только одно сообщение с необязательным ответом. При отправке в ваше расширение событие runtime.onMessage будет срабатывать в каждом кадре вашего расширения (кроме кадра отправителя) или runtime.onMessageExternal , если это другое расширение. Обратите внимание, что расширения не могут отправлять сообщения скриптам контента с помощью этого метода. Для отправки сообщений скриптам контента используйте tabs.sendMessage .

Параметры

  • extensionId

    строка необязательный

    Идентификатор расширения, которому будет отправлено сообщение. Если не указан, сообщение будет отправлено в ваше собственное расширение/приложение. Обязательно для отправки сообщений с веб-страницы в веб-мессенджере .

  • сообщение

    любой

    Сообщение для отправки. Это сообщение должно представлять собой объект, пригодный для преобразования в формат JSON.

  • параметры

    объект необязательный

    • includeTlsChannelId

      логический необязательный

      Будет ли идентификатор TLS-канала передаваться в функцию onMessageExternal для процессов, ожидающих события подключения.

  • перезвонить

    функция необязательна

    Chrome 99+

    Параметр callback выглядит следующим образом:

    (response: any) => void

    • ответ

      любой

      The JSON response object sent by the handler of the message. If an error occurs while connecting to the extension, the callback will be called with no arguments and runtime.lastError will be set to the error message.

Возвраты

  • Обещание<любое>

    Chrome 99+

    Поддержка промисов для контекстов расширений была добавлена ​​в Chrome 99. При обмене данными между веб-страницей и расширением промисы доступны начиная с Chrome 118.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

sendNativeMessage()

Обещать
chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
  callback?: function,
)
: Promise<any>

Отправка одного сообщения в нативное приложение. Для этого метода требуется разрешение "nativeMessaging" .

Параметры

  • приложение

    нить

    Имя хоста обмена сообщениями или подробные сведения о целевом объекте.

  • сообщение

    объект

    Сообщение, которое будет передано на собственный сервер обмена сообщениями.

  • перезвонить

    функция необязательна

    Chrome 99+

    Параметр callback выглядит следующим образом:

    (response: any) => void

    • ответ

      любой

      The response message sent by the native messaging host. If an error occurs while connecting to the native messaging host, the callback will be called with no arguments and runtime.lastError will be set to the error message.

Возвраты

  • Обещание<любое>

    Chrome 99+

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

setUninstallURL()

Обещать
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)
: Promise<void>

Задает URL-адрес, который будет посещен после удаления приложения. Это может использоваться для очистки данных на стороне сервера, проведения аналитики и внедрения опросов. Максимальная длина — 1023 символа.

Параметры

  • url

    нить

    URL-адрес, который откроется после удаления расширения. Этот URL-адрес должен иметь схему http: или https:. Укажите пустую строку, чтобы при удалении не открывалась новая вкладка.

  • перезвонить

    функция необязательна

    Chrome 45+

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 99+

    Обещание, которое выполняется при указании URL-адреса для удаления. Если указанный URL-адрес недействителен, обещание будет отклонено.

    Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.

События

onBrowserUpdateAvailable

Устаревший
chrome.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

Пожалуйста, используйте runtime.onRestartRequired .

Событие срабатывает, когда доступно обновление Chrome, но оно не устанавливается немедленно, поскольку требуется перезапуск браузера.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    () => void

onConnect

chrome.runtime.onConnect.addListener(
  callback: function,
)

Событие срабатывает при установлении соединения либо из процесса расширения, либо из скрипта содержимого (методом runtime.connect ).

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (port: Port) => void

onConnectExternal

chrome.runtime.onConnectExternal.addListener(
  callback: function,
)

Срабатывает при установлении соединения с другим расширением (методом runtime.connect ) или с внешним веб-сайтом, к которому можно подключиться.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (port: Port) => void

onConnectNative

Chrome 76+
chrome.runtime.onConnectNative.addListener(
  callback: function,
)

Событие срабатывает при установлении соединения из нативного приложения. Для этого события требуется разрешение "nativeMessaging" . Поддерживается только в Chrome OS.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (port: Port) => void

onEnabled

Chrome 155+
chrome.runtime.onEnabled.addListener(
  callback: function,
)

Событие срабатывает, когда расширение переходит из отключенного состояния во включенное.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    () => void

onExtensionLoaded

В ожидании
chrome.runtime.onExtensionLoaded.addListener(
  callback: function,
)

Fired when the extension is added to the set of active extensions. This can occur in multiple scenarios: when an extension is first installed, updated to a new version, re-enabled after being disabled, reloaded, loaded during browser startup, or loaded when the browser is updated to a new version.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (details: ExtensionLoadDetails) => void

onInstalled

chrome.runtime.onInstalled.addListener(
  callback: function,
)

Срабатывает при первой установке расширения, при обновлении расширения до новой версии и при обновлении Chrome до новой версии.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробности

      объект

      • идентификатор

        строка необязательный

        Указывает идентификатор импортированного расширения общего модуля, которое было обновлено. Этот параметр присутствует только в том случае, если 'reason' равен 'shared_module_update'.

      • предыдущая версия

        строка необязательный

        Указывает на предыдущую версию расширения, которая только что была обновлена. Эта опция присутствует только в том случае, если в поле «reason» указано «update».

      • причина

        Причина отправки данного сообщения.

onMessage

chrome.runtime.onMessage.addListener(
  callback: function,
)

Событие срабатывает при отправке сообщения либо из runtime.sendMessage , либо tabs.sendMessage .

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined

    • сообщение

      любой

    • отправитель
    • отправитьОтвет

      функция

      Параметр sendResponse выглядит следующим образом:

      (response?: any) => void

      • ответ

        любой необязательный

        Ответ, который будет отправлен отправителю сообщения.

    • возвраты

      логическое значение | Promise<any> | неопределенное значение

onMessageExternal

chrome.runtime.onMessageExternal.addListener(
  callback: function,
)

Срабатывает при отправке сообщения из другого расширения (методом runtime.sendMessage ). Не может использоваться в скрипте содержимого.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined

    • сообщение

      любой

    • отправитель
    • отправитьОтвет

      функция

      Параметр sendResponse выглядит следующим образом:

      (response?: any) => void

      • ответ

        любой необязательный

        Ответ, который будет отправлен отправителю сообщения.

    • возвраты

      логическое значение | Promise<any> | неопределенное значение

onRestartRequired

chrome.runtime.onRestartRequired.addListener(
  callback: function,
)

Fired when an app or the device that it runs on needs to be restarted. The app should close all its windows at its earliest convenient time to let the restart to happen. If the app does nothing, a restart will be enforced after a 24-hour grace period has passed. Currently, this event is only fired for Chrome OS kiosk apps.

Параметры

onStartup

chrome.runtime.onStartup.addListener(
  callback: function,
)

Fired when a profile that has this extension installed first starts up. This event is not fired when an incognito profile is started, even if this extension is operating in 'split' incognito mode.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    () => void

onSuspend

chrome.runtime.onSuspend.addListener(
  callback: function,
)

Sent to the event page just before it is unloaded. This gives the extension opportunity to do some clean up. Note that since the page is unloading, any asynchronous operations started while handling this event are not guaranteed to complete. If more activity for the event page occurs before it gets unloaded the onSuspendCanceled event will be sent and the page won't be unloaded.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    () => void

onSuspendCanceled

chrome.runtime.onSuspendCanceled.addListener(
  callback: function,
)

Отправляется после события onSuspend, чтобы указать, что приложение всё-таки не будет выгружено.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    () => void

onUpdateAvailable

chrome.runtime.onUpdateAvailable.addListener(
  callback: function,
)

Событие срабатывает, когда доступно обновление, но оно не устанавливается немедленно, поскольку приложение в данный момент запущено. Если вы ничего не делаете, обновление будет установлено при следующей выгрузке фоновой страницы. Если вы хотите установить его раньше, вы можете явно вызвать chrome.runtime.reload(). Если ваше расширение использует постоянную фоновую страницу, она, конечно, никогда не выгружается, поэтому, если вы не вызовете chrome.runtime.reload() вручную в ответ на это событие, обновление не будет установлено до следующего перезапуска Chrome. Если обработчики этого события не прослушивают, и ваше расширение использует постоянную фоновую страницу, оно ведет себя так, как если бы chrome.runtime.reload() вызывался в ответ на это событие.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробности

      объект

      • версия

        нить

        Номер версии доступного обновления.