chrome.runtime

Описание

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

Большинству членов этого API не требуются никакие разрешения. Это разрешение необходимо для connectNative() , sendNativeMessage() и onNativeConnect .

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

manifest.json:

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

Понятия и применение

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

Передача сообщений
Ваше расширение может взаимодействовать с различными контекстами внутри самого расширения, а также с другими расширениями, используя следующие методы и события: connect() , onConnect , onConnectExternal , sendMessage() , onMessage и onMessageExternal . Кроме того, ваше расширение может передавать сообщения в нативные приложения на устройстве пользователя с помощью connectNative() и sendNativeMessage() .
Доступ к метаданным расширений и платформ.
Эти методы позволяют получить несколько конкретных фрагментов метаданных о расширении и платформе. К этой категории относятся методы getManifest() и getPlatformInfo() .
Управление жизненным циклом расширений и их опциями.
Эти свойства позволяют выполнять некоторые мета-операции с расширением и отображать страницу параметров. К методам и событиям этой категории относятся onInstalled , onStartup , openOptionsPage() , reload() , requestUpdateCheck() и setUninstallURL() .
Вспомогательные утилиты
Эти методы предоставляют такие возможности, как преобразование внутренних представлений ресурсов во внешние форматы. К методам этой категории относится getURL() .
утилиты режима киоска
Эти методы доступны только в ChromeOS и существуют в основном для поддержки киосков. К методам этой категории относятся restart() и restartAfterDelay() .

Поведение распакованного расширения

Когда распакованное расширение перезагружается , это рассматривается как обновление. Это означает, что событие chrome.runtime.onInstalled будет срабатывать с причиной "update" . Это относится и к случаям перезагрузки расширения с помощью chrome.runtime.reload() .

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

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

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

В этом примере расширение добавит logo.png на страницу, в которую внедряется скрипт содержимого , используя runtime.getURL() для создания полного URL-адреса. Но сначала этот ресурс должен быть объявлен как веб-доступный ресурс в манифесте.

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);
}

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

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

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

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);
});

service-worker.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+

Фильтр для сопоставления с определенными контекстами расширения. Соответствующие контексты должны соответствовать всем указанным фильтрам; любой неуказанный фильтр соответствует всем доступным контекстам. Таким образом, фильтр `{}` будет соответствовать всем доступным контекстам.

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

  • contextIds

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

  • contextTypes

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

  • documentIds

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

  • documentOrigins

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

  • documentUrls

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

  • frameIds

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

  • инкогнито

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

  • tabIds

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

  • windowIds

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

ContextType

Chrome 114+

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

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

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

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

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

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

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

ExtensionContext

Chrome 114+

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

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

  • contextId

    нить

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

  • contextType

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

  • documentId

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

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

  • documentOrigin

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

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

  • documentUrl

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

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

  • frameId

    число

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

  • инкогнито

    логический

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

  • tabId

    число

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

  • windowId

    число

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

MessageSender

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

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

  • documentId

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

    Chrome 106+

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

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

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

    Chrome 106+

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

  • frameId

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

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

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

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

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

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

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

    Chrome 74+

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

  • источник

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

    Chrome 80+

    Источник страницы или фрейма, открывшего соединение. Он может отличаться от свойства URL (например, about:blank) или быть непрозрачным (например, изолированные iframe). Это полезно для определения того, можно ли доверять источнику, если это невозможно сразу определить по URL.

  • вкладка

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

    Свойство tabs.Tab указывает, какая вкладка открыла соединение, если таковая имеется. Это свойство будет присутствовать только в том случае, если соединение было открыто из вкладки (включая скрипты контента) и только если получателем является расширение, а не приложение.

  • tlsChannelId

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

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

  • url

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

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

OnInstalledReason

Chrome 44+

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

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

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

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

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

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

OnRestartRequiredReason

Chrome 44+

Причина отправки события. 'app_update' используется, когда перезапуск необходим из-за обновления приложения до более новой версии. 'os_update' используется, когда перезапуск необходим из-за обновления браузера/ОС до более новой версии. 'periodic' используется, когда система работает дольше разрешенного времени безотказной работы, установленного в корпоративной политике.

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

"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.

PlatformNaclArch

Chrome 44+

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

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

"рука"
Указывает архитектуру клиентского приложения как 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>

    Событие срабатывает при отключении порта от другого конца (концов). Если отключение порта произошло из-за ошибки, может быть установлено значение runtime.lastError . Если порт закрыт из-за отключения , то это событие срабатывает только на другом конце. Это событие срабатывает не более одного раза (см. также Время жизни порта ).

    Функция 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

В случае сбоя вызова функции API это значение заполняется сообщением об ошибке; в противном случае оно не определено. Это значение определяется только в рамках функции обратного вызова данной функции. Если возникает ошибка, но runtime.lastError не используется в функции обратного вызова, в консоль выводится сообщение со списком функций API, вызвавших ошибку. Функции API, возвращающие промисы, не устанавливают это свойство.

Тип

объект

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

  • сообщение

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

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

Методы

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()

Только передний план. Устарело с Chrome 133.
chrome.runtime.getBackgroundPage(): Promise<Window | undefined>

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

Получает объект JavaScript 'window' для фоновой страницы, работающей внутри текущего расширения/приложения. Если фоновая страница является страницей события, система гарантирует ее загрузку перед вызовом функции обратного вызова. Если фоновой страницы нет, устанавливается ошибка.

Возвраты

  • Promise<Window | undefined>

    Chrome 99+

getContexts()

Chrome 116+ MV3+
chrome.runtime.getContexts(
  filter: ContextFilter,
)
: Promise<ExtensionContext[]>

Получает информацию об активных контекстах, связанных с этим расширением.

Параметры

  • Фильтр для поиска соответствующих контекстов. Контекст считается соответствующим, если он соответствует всем указанным в фильтре полям. Любое неуказанное в фильтре поле соответствует всем контекстам.

Возвраты

getManifest()

chrome.runtime.getManifest(): object

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

Возвраты

  • объект

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

getPackageDirectoryEntry()

Только передний план
chrome.runtime.getPackageDirectoryEntry(): Promise<DirectoryEntry>

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

Возвраты

  • Promise<DirectoryEntry>

    Chrome 122+

getPlatformInfo()

chrome.runtime.getPlatformInfo(): Promise<PlatformInfo>

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

Возвраты

getURL()

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

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

Параметры

  • путь

    нить

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

Возвраты

  • нить

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

getVersion()

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

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

Возвраты

  • нить

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

openOptionsPage()

chrome.runtime.openOptionsPage(): Promise<void>

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

Точное поведение может зависеть от ключа options_ui или options_page в вашем манифесте, а также от того, что Chrome поддерживает в данный момент. Например, страница может быть открыта в новой вкладке, в chrome://extensions, внутри приложения или просто фокусироваться на открытой странице настроек. Это никогда не приведет к перезагрузке страницы, которая вызывает запрос.

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

Возвраты

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

    Chrome 99+

reload()

chrome.runtime.reload(): void

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

requestUpdateCheck()

chrome.runtime.requestUpdateCheck(): Promise<object>

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

Важно : большинству расширений/приложений не следует использовать этот метод, поскольку Chrome уже выполняет автоматические проверки каждые несколько часов, и вы можете отслеживать событие runtime.onUpdateAvailable без необходимости вызывать requestUpdateCheck.

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

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

Возвраты

  • Promise<object>

    Chrome 109+

restart()

chrome.runtime.restart(): void

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

restartAfterDelay()

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

Перезагрузите устройство ChromeOS, когда приложение будет работать в режиме киоска по истечении заданного количества секунд. Если вызов будет произведен повторно до истечения времени, перезагрузка будет отложена. Если вызов будет произведен со значением -1, перезагрузка будет отменена. В режиме, отличном от киоска, эта операция ничего не делает. Повторный вызов разрешен только первому расширению, которое вызвало этот API.

Параметры

  • секунд

    число

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

Возвраты

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

    Chrome 99+

sendMessage()

chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
)
: Promise<any>

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

Параметры

  • extensionId

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

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

  • сообщение

    любой

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

  • параметры

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

    • includeTlsChannelId

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

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

Возвраты

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

    Chrome 99+

sendNativeMessage()

chrome.runtime.sendNativeMessage(
  application: string,
  message: object,
)
: Promise<any>

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

Параметры

  • приложение

    нить

    Имя собственного хоста обмена сообщениями.

  • сообщение

    объект

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

Возвраты

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

    Chrome 99+

setUninstallURL()

chrome.runtime.setUninstallURL(
  url: string,
)
: Promise<void>

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

Параметры

  • url

    нить

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

Возвраты

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

    Chrome 99+

События

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

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 | undefined

    • сообщение

      любой

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

      функция

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

      (response?: any) => void

      • ответ

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

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

    • возвраты

      логическое значение | неопределенное

onMessageExternal

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

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

Параметры

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

    функция

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

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

    • сообщение

      любой

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

      функция

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

      (response?: any) => void

      • ответ

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

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

    • возвраты

      логическое значение | неопределенное

onRestartRequired

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

Событие срабатывает, когда приложению или устройству, на котором оно работает, требуется перезапуск. Приложение должно закрыть все свои окна в наиболее удобное для этого время, чтобы перезапуск состоялся. Если приложение ничего не делает, перезапуск будет выполнен после истечения 24-часового льготного периода. В настоящее время это событие срабатывает только для киосковых приложений Chrome OS.

Параметры

onStartup

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

Событие срабатывает при первом запуске профиля, в котором установлено это расширение. Это событие не срабатывает при запуске профиля в режиме инкогнито, даже если это расширение работает в режиме «разделенного» инкогнито.

Параметры

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

    функция

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

    () => void

onSuspend

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

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

Параметры

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

    функция

    Параметр 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

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

      объект

      • версия

        нить

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

onUserScriptConnect

Chrome 115+ MV3+
chrome.runtime.onUserScriptConnect.addListener(
  callback: function,
)

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

Параметры

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

    функция

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

    (port: Port) => void

onUserScriptMessage

Chrome 115+ MV3+
chrome.runtime.onUserScriptMessage.addListener(
  callback: function,
)

Срабатывает при отправке сообщения из пользовательского скрипта, связанного с тем же расширением.

Параметры

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

    функция

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

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

    • сообщение

      любой

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

      функция

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

      (response?: any) => void

      • ответ

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

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

    • возвраты

      логическое значение | неопределенное