Описание
 Используйте API chrome.runtime для получения сервис-воркера, возврата информации о манифесте, а также для отслеживания и реагирования на события в жизненном цикле расширения. Вы также можете использовать этот API для преобразования относительных путей URL-адресов в полные URL-адреса.
Обзор
Runtime API предоставляет методы для поддержки ряда функциональных областей, которые могут использовать ваши расширения:
- Передача сообщений
- Ваше расширение может взаимодействовать с различными контекстами внутри него, а также с другими расширениями, используя следующие методы и события: connect() , onConnect , onConnectExternal , sendMessage() , onMessage и onMessageExternal . Кроме того, ваше расширение может передавать сообщения в собственные приложения на устройстве пользователя с помощью методов connectNative() и sendNativeMessage() .
- Доступ к метаданным расширения и платформы
- Эти методы позволяют получить ряд конкретных метаданных о расширении и платформе. К методам этой категории относятся getManifest() и getPlatformInfo() .
- Управление жизненным циклом и вариантами расширения
- Эти свойства позволяют выполнять некоторые метаоперации с расширением и отображать страницу параметров. Методы и события этой категории включают onInstalled , onStartup , openOptionsPage() , reload() , requestUpdateCheck() и 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"> ). То же самое относится и к добавлению ресурса расширения на веб-страницу. Два отличия заключаются в том, что ресурсы расширения должны быть представлены как веб-ресурсы, доступные через Интернет , и что обычно за внедрение ресурсов расширения отвечают скрипты контента.
 В этом примере расширение добавит 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);
});
фон.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);
  }
});
Соберите отзывы об удалении
Многие расширения используют опросы после удаления, чтобы понять, как расширение может улучшить обслуживание пользователей и повысить их удержание. Следующий пример показывает, как добавить эту функцию.
фон.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
Фильтр для сопоставления с определёнными контекстами расширения. Соответствующие контексты должны соответствовать всем указанным фильтрам; любой неуказанный фильтр соответствует всем доступным контекстам. Таким образом, фильтр `{}` будет соответствовать всем доступным контекстам.
Характеристики
- contextIdsстрока[] необязательная 
- contextTypesContextType [] необязательно 
- идентификаторы документовстрока[] необязательная 
- documentOriginsстрока[] необязательная 
- documentUrlsстрока[] необязательная 
- frameIdsномер[] необязательно 
- инкогнитологическое необязательное 
- tabIdsномер[] необязательно 
- идентификаторы оконномер[] необязательно 
ContextType
Перечисление
 "TAB"  "НЕОЖИДАННО ВОЗНИКНУТЬ"  "ФОН"  "ВНЕЭКРАННЫЙ_ДОКУМЕНТ"  "БОКОВАЯ_ПАНЕЛЬ"  "ИНСТРУМЕНТЫ_РАЗРАБОТЧИКА"
 Указывает тип контекста как вкладку 
 Указывает тип контекста как всплывающее окно расширения. 
 Указывает тип контекста как сервисный работник. 
 Указывает тип контекста как внеэкранный документ. 
 Указывает тип контекста как боковую панель. 
 Указывает тип контекста как инструменты разработчика.
ExtensionContext
Контекстный хостинг расширения контента.
Характеристики
- contextIdнить Уникальный идентификатор для этого контекста 
- contextTypeТип контекста, которому это соответствует. 
- documentIdстрока необязательная UUID для документа, связанного с этим контекстом, или неопределенный, если этот контекст размещен не в документе. 
- documentOriginстрока необязательная Происхождение документа, связанного с этим контекстом, или неопределенное, если контекст не размещен в документе. 
- documentUrlстрока необязательная URL-адрес документа, связанного с этим контекстом, или неопределенный, если контекст не размещен в документе. 
- frameIdчисло Идентификатор фрейма для этого контекста или -1, если этот контекст не размещен во фрейме. 
- инкогнитобулев Связан ли контекст с профилем инкогнито. 
- tabIdчисло Идентификатор вкладки для этого контекста или -1, если этот контекст не размещен во вкладке. 
- windowIdчисло Идентификатор окна для этого контекста или -1, если этот контекст не размещен в окне. 
MessageSender
Объект, содержащий информацию о контексте скрипта, отправившего сообщение или запрос.
Характеристики
- documentIdстрока необязательная Хром 106+UUID документа, открывшего соединение. 
- жизненный цикл документастрока необязательная Хром 106+Жизненный цикл документа, открывшего соединение, на момент создания порта. Обратите внимание, что состояние жизненного цикла документа могло измениться с момента создания порта. 
- frameIdномер необязательно Фрейм , открывший соединение. 0 для фреймов верхнего уровня, положительное значение для дочерних фреймов. Устанавливается только при установке tab.
- идентификаторстрока необязательная Идентификатор расширения, открывшего соединение, если таковой имеется. 
- nativeApplicationстрока необязательная Хром 74+Имя собственного приложения, открывшего соединение, если таковое имеется. 
- источникстрока необязательная Хром 80+Источник страницы или фрейма, открывшего соединение. Он может отличаться от свойства URL (например, about:blank) или быть непрозрачным (например, изолированные iframe). Это полезно для определения того, можно ли доверять источнику, если это невозможно определить по URL. 
- вкладкаВкладка необязательна Вкладка tabs.Tab, открывшая соединение, если таковая имеется. Это свойство будет присутствовать только в том случае, если соединение было открыто из вкладки (включая скрипты содержимого), и только если получатель — расширение, а не приложение.
- tlsChannelIdстрока необязательная Идентификатор канала TLS страницы или фрейма, открывшего соединение, если он запрошен расширением и доступен. 
- URL-адресстрока необязательная URL страницы или фрейма, открывшего соединение. Если отправитель находится в iframe, это будет URL iframe, а не URL страницы, на которой он размещен. 
OnInstalledReason
Причина, по которой отправляется это событие.
Перечисление
 "установить"  "обновлять"  "chrome_update"  "shared_module_update"
 Указывает причину события как установку. 
 Указывает причину события как обновление расширения. 
 Указывает причину события как обновление Chrome. 
 Указывает причину события как обновление общего модуля.
OnRestartRequiredReason
Причина отправки события. «app_update» используется, когда перезапуск необходим из-за обновления приложения до более новой версии. «os_update» используется, когда перезапуск необходим из-за обновления браузера/ОС до более новой версии. «periodic» используется, когда система работает дольше разрешенного времени безотказной работы, установленного в корпоративной политике.
Перечисление
 "app_update"  "os_update"  "периодический"
 Указывает причину события как обновление приложения. 
 Указывает причину события как обновление операционной системы. 
 Указывает причину события как периодический перезапуск приложения.
PlatformArch
Архитектура процессора машины.
Перечисление
 "рука"  "arm64"  "x86-32"  "x86-64"  "мипс"  "mips64"  "riscv64"
 Указывает архитектуру процессора как arm. 
 Указывает архитектуру процессора как arm64. 
 Указывает архитектуру процессора как x86-32. 
 Указывает архитектуру процессора как x86-64. 
 Указывает архитектуру процессора как mips. 
 Указывает архитектуру процессора как mips64. 
 Указывает архитектуру процессора как riscv64.
PlatformInfo
Объект, содержащий информацию о текущей платформе.
Характеристики
- аркаАрхитектура процессора машины. 
- nacl_archPlatformNaclArch необязательно Собственная архитектура клиента. На некоторых платформах она может отличаться от архитектуры Arch. 
- ОСОперационная система, на которой работает Chrome. 
PlatformNaclArch
Собственная архитектура клиента. На некоторых платформах она может отличаться от архитектуры Arch.
Перечисление
 "рука"  "x86-32"  "x86-64"  "мипс"  "mips64"
 Указывает собственную архитектуру клиента как arm. 
 Указывает собственную архитектуру клиента как x86-32. 
 Указывает собственную архитектуру клиента как x86-64. 
 Указывает собственную архитектуру клиента как mips. 
 Указывает собственную архитектуру клиента как mips64.
PlatformOs
Операционная система, на которой работает Chrome.
Перечисление
 "мак"  "победить"  "андроид"  "кресты"  "линукс"  "openbsd"
 Указывает операционную систему MacOS. 
 Указывает операционную систему Windows. 
 Указывает операционную систему Android. 
 Указывает операционную систему Chrome. 
 Указывает операционную систему Linux. 
 Указывает операционную систему OpenBSD.
Port
Объект, обеспечивающий двустороннюю связь с другими страницами. Подробнее см. в разделе Долгосрочные соединения .
Характеристики
- имянить Имя порта, указанное в вызове runtime.connect.
- onDisconnectСобытие<functionvoidvoid> Срабатывает при отключении порта от другого конца (или концов). Событие runtime.lastErrorможет быть установлено, если порт был отключен из-за ошибки. Если порт закрыт с помощью disconnect , это событие срабатывает только на другом конце. Это событие срабатывает не более одного раза (см. также Время жизни порта ).Функция onDisconnect.addListenerвыглядит так:(callback: function) => {...} 
- onMessageСобытие<functionvoidvoid> Это событие возникает, когда postMessage вызывается другим концом порта. Функция onMessage.addListenerвыглядит так:(callback: function) => {...} 
- отправительMessageSender (необязательно) Это свойство будет присутствовать только в портах, переданных прослушивателям onConnect / onConnectExternal / onConnectNative . 
- отключитьпустота Немедленно отключите порт. Вызов метода disconnect()для уже отключённого порта не даст никакого эффекта. При отключении порта новые события на этот порт отправляться не будут.Функция disconnectвыглядит так:() => {...}
- postMessageпустота Отправьте сообщение на другой конец порта. Если порт отключен, выдаётся ошибка. Функция postMessageвыглядит так:(message: any) => {...} - сообщениелюбой Хром 52+Сообщение для отправки. Этот объект должен быть доступен в формате JSON. 
 
RequestUpdateCheckStatus
Результат проверки обновлений.
Перечисление
 "задушенный"  "no_update"  "обновление_доступно"
 Указывает, что проверка статуса была приостановлена. Это может произойти после повторных проверок в течение короткого промежутка времени. 
 Указывает, что нет доступных обновлений для установки. 
 Указывает, что доступно обновление для установки.
Характеристики
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.runtime.getBackgroundPage(
callback?: function,
): Promise<Window | undefined>
Фоновые страницы отсутствуют в расширениях MV3.
Получает объект JavaScript «window» для фоновой страницы, работающей внутри текущего расширения/приложения. Если фоновая страница является страницей событий, система обеспечит её загрузку перед вызовом обратного вызова. Если фоновая страница отсутствует, возникает ошибка.
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(backgroundPage?: Window) => void - фоновая страницаОкно опционально Объект JavaScript «window» для фоновой страницы. 
 
Возврат
- Обещание<Окно | не определено> Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getManifest()
chrome.runtime.getManifest(): object
Возвращает информацию о приложении или расширении из манифеста. Возвращаемый объект представляет собой сериализацию полного файла манифеста .
Возврат
- объект - Подробности манифеста. 
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
): Promise<DirectoryEntry>
Возвращает DirectoryEntry для каталога пакета.
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(directoryEntry: DirectoryEntry) => void - DirectoryEntryDirectoryEntry 
 
Возврат
- Обещание<DirectoryEntry> Хром 122+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
): Promise<PlatformInfo>
Возвращает информацию о текущей платформе.
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(platformInfo: PlatformInfo) => void - platformInfo
 
Возврат
- Promise< Информация о платформе > Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getURL()
chrome.runtime.getURL(
path: string,
): string
Преобразует относительный путь в каталоге установки приложения/расширения в полный URL-адрес.
Параметры
- путьнить Путь к ресурсу внутри приложения/расширения, выраженный относительно каталога его установки. 
Возврат
- нить - Полный URL-адрес ресурса. 
getVersion()
chrome.runtime.getVersion(): string
Возвращает версию расширения, указанную в манифесте.
Возврат
- нить - Версия расширения. 
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
): Promise<void>
Если возможно, откройте страницу настроек вашего расширения.
 Точное поведение может зависеть от ключа options_ui или options_page в вашем манифесте, а также от того, какие функции поддерживает Chrome в данный момент. Например, страница может быть открыта в новой вкладке, на странице chrome://extensions, в приложении или просто на открытой странице параметров. Это никогда не приведёт к перезагрузке вызывающей страницы.
 Если ваше расширение не объявляет страницу параметров или Chrome не смог ее создать по какой-то другой причине, обратный вызов установит lastError . 
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
reload()
chrome.runtime.reload(): void
Перезагружает приложение или расширение. Этот метод не поддерживается в режиме киоска. Для режима киоска используйте метод chrome.runtime.restart().
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
): Promise<object>
Запрашивает немедленную проверку обновлений для этого приложения/расширения.
 Важно : большинство расширений/приложений не должны использовать этот метод, поскольку Chrome уже выполняет автоматические проверки каждые несколько часов, и вы можете прослушивать событие runtime.onUpdateAvailable без необходимости вызывать requestUpdateCheck.
Этот метод целесообразно вызывать только в очень редких случаях, например, если ваше расширение взаимодействует с бэкенд-сервисом, и бэкенд-сервис определил, что версия клиентского расширения сильно устарела, и вы хотите предложить пользователю обновить её. Большинство других способов применения requestUpdateCheck, например, безусловный вызов по повторяющемуся таймеру, вероятно, приведут лишь к напрасной трате ресурсов клиента, сети и сервера.
Примечание: при вызове с обратным вызовом эта функция вместо возврата объекта вернет два свойства как отдельные аргументы, переданные обратному вызову.
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(result: object) => void - результатобъект Хром 109+Объект RequestUpdateCheckResult, который содержит статус проверки обновлений и любые сведения о результате, если доступно обновление. - статусРезультат проверки обновлений. 
- версиястрока необязательная Если доступно обновление, здесь указана версия доступного обновления. 
 
 
Возврат
- Обещание<объект> Хром 109+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
restart()
chrome.runtime.restart(): void
Перезагрузите устройство ChromeOS, когда приложение работает в режиме киоска. В противном случае оно не будет работать.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
): Promise<void>
Перезагрузите устройство ChromeOS, когда приложение запустится в режиме киоска по истечении заданного времени. При повторном вызове до истечения этого времени перезагрузка будет отложена. При вызове со значением -1 перезагрузка будет отменена. В режиме, отличном от киоска, это невыполнимая операция. Повторный вызов разрешен только первому расширению, использующему этот API.
Параметры
- секундычисло Время ожидания в секундах перед перезагрузкой устройства или -1 для отмены запланированной перезагрузки. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 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 для процессов, прослушивающих событие подключения. 
 
- перезвонитьфункция необязательна Хром 99+Параметр callbackвыглядит так:(response: any) => void - ответлюбой Объект ответа JSON, отправленный обработчиком сообщения. Если при подключении к расширению возникнет ошибка, функция обратного вызова будет вызвана без аргументов, а runtime.lastErrorбудет содержать сообщение об ошибке.
 
Возврат
- Обещание<любое> Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
): Promise<any>
 Отправка одного сообщения в нативное приложение. Для этого метода требуется разрешение "nativeMessaging" . 
Параметры
- приложениенить Имя собственного хоста обмена сообщениями. 
- сообщениеобъект Сообщение, которое будет передано на собственный хост обмена сообщениями. 
- перезвонитьфункция необязательна Хром 99+Параметр callbackвыглядит так:(response: any) => void - ответлюбой Ответное сообщение, отправленное собственным хостом обмена сообщениями. Если при подключении к собственному хосту обмена сообщениями возникает ошибка, функция обратного вызова будет вызвана без аргументов, а runtime.lastErrorбудет содержать сообщение об ошибке.
 
Возврат
- Обещание<любое> Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
): Promise<void>
Задаёт URL-адрес, по которому будет осуществляться переход после удаления. Может использоваться для очистки данных на стороне сервера, аналитики и проведения опросов. Максимальная длина — 1023 символа.
Параметры
- URL-адреснить URL-адрес, который будет открываться после удаления расширения. Этот URL-адрес должен иметь схему http: или https:. Чтобы не открывать новую вкладку после удаления, укажите пустую строку. 
- перезвонитьфункция необязательна Хром 45+Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 99+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
События
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
 Используйте runtime.onRestartRequired .
Срабатывает, когда обновление Chrome доступно, но не устанавливается немедленно, поскольку требуется перезапуск браузера.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
 Срабатывает при установлении соединения из процесса расширения или скрипта содержимого (с помощью runtime.connect ). 
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
 Срабатывает при установлении соединения с другого расширения (с помощью runtime.connect ) или с внешнего подключаемого веб-сайта. 
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
 Срабатывает при установлении соединения из нативного приложения. Для этого события требуется разрешение "nativeMessaging" . Поддерживается только в Chrome OS. 
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Срабатывает при первой установке расширения, при обновлении расширения до новой версии и при обновлении Chrome до новой версии.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(details: object) => void - подробностиобъект - идентификаторстрока необязательная Указывает идентификатор импортированного расширения общего модуля, которое было обновлено. Указывается только в том случае, если в качестве причины указано «shared_module_update». 
- предыдущаяВерсиястрока необязательная Указывает на предыдущую версию расширения, которая была только что обновлена. Присутствует только если в качестве причины указано «обновление». 
- причинаПричина, по которой отправляется это событие. 
 
 
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
 Срабатывает при отправке сообщения либо из процесса расширения (с помощью runtime.sendMessage ), либо из скрипта содержимого (с помощью tabs.sendMessage ). 
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined - сообщениелюбой 
- отправитель
- sendResponseфункция Параметр sendResponseвыглядит так:() => void 
 - возвращаетсялогическое значение | неопределенное 
 
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
 Вызывается при отправке сообщения из другого расширения (с помощью runtime.sendMessage ). Не может использоваться в скрипте содержимого. 
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined - сообщениелюбой 
- отправитель
- sendResponseфункция Параметр sendResponseвыглядит так:() => void 
 - возвращаетсялогическое значение | неопределенное 
 
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Срабатывает, когда требуется перезапуск приложения или устройства, на котором оно работает. Приложение должно закрыть все свои окна как можно скорее, чтобы перезапуск произошёл. Если приложение не выполняет никаких действий, перезапуск будет выполнен принудительно по истечении 24-часового льготного периода. В настоящее время это событие срабатывает только для киоск-приложений Chrome OS.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(reason: OnRestartRequiredReason) => void - причина
 
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 - подробностиобъект - версиянить Номер версии доступного обновления.