Описание
Используйте API chrome.runtime для получения информации о сервис-воркере, получения сведений о манифесте, а также для прослушивания и реагирования на события в жизненном цикле расширения. Вы также можете использовать этот API для преобразования относительных путей URL-адресов в полные URL-адреса.
Обзор
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);
});
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
Фильтр для сопоставления с определенными контекстами расширения. Соответствующие контексты должны соответствовать всем указанным фильтрам; любой неуказанный фильтр соответствует всем доступным контекстам. Таким образом, фильтр `{}` будет соответствовать всем доступным контекстам.
Характеристики
- contextIds
строка[] необязательный
- contextTypes
ContextType [] необязательный
- documentIds
строка[] необязательный
- documentOrigins
строка[] необязательный
- documentUrls
строка[] необязательный
- frameIds
число[] необязательно
- инкогнито
логический необязательный
- tabIds
число[] необязательно
- windowIds
число[] необязательно
ContextType
Перечисление
"ТАБ" "НЕОЖИДАННО ВОЗНИКНУТЬ" "ФОН" "OFFSCREEN_DOCUMENT" "БОКОВАЯ ПАНЕЛЬ" "ИНСТРУМЕНТЫ_РАЗРАБОТЧИКА"
Указывает тип контекста в виде вкладки.
Указывает тип контекста как всплывающее окно расширения.
Указывает тип контекста как сервисный работник.
Указывает тип контекста как документ, находящийся за пределами видимой области экрана.
Указывает тип контекста в виде боковой панели.
Указывает тип контекста как инструменты разработчика.
ExtensionContext
Контекст, содержащий контент расширения.
Характеристики
- контекстId
нить
Уникальный идентификатор для данного контекста
- 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_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_arch
PlatformNaclArch optional
Архитектура нативного клиента. На некоторых платформах она может отличаться от архитектуры.
- ос
Операционная система, на которой работает Chrome.
PlatformNaclArch
Архитектура нативного клиента. На некоторых платформах она может отличаться от архитектуры.
Перечисление
"рука" "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. Если порт закрыт из-за отключения , то это событие срабатывает только на другом конце. Это событие срабатывает не более одного раза (см. также Время жизни порта ).Функция
onDisconnect.addListenerвыглядит следующим образом:(callback: function) => {...}
- onMessage
Событие<functionvoidvoid>
Это событие срабатывает при вызове метода postMessage с другой стороны порта.
Функция
onMessage.addListenerвыглядит следующим образом:(callback: function) => {...}
- отправитель
MessageSender (необязательно)
Это свойство будет присутствовать только на портах, передаваемых слушателям onConnect / onConnectExternal / onConnectNative .
- отключить
пустота
Немедленно отключите порт. Вызов метода
disconnect()для уже отключенного порта не имеет никакого эффекта. После отключения порта новые события на этот порт отправляться не будут.Функция
disconnectвыглядит следующим образом:() => {...} - postMessage
пустота
Отправьте сообщение на другой конец порта. Если порт разорвётся, будет выдана ошибка.
Функция
postMessageвыглядит следующим образом:(message: any) => {...}
- сообщение
любой
Chrome 52+Сообщение для отправки. Этот объект должен быть пригоден для преобразования в формат JSON.
RequestUpdateCheckStatus
Результат проверки обновлений.
Перечисление
"задушен" "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.runtime.getBackgroundPage(
callback?: function,
): Promise<Window | undefined>
В расширениях MV3 отсутствуют фоновые страницы.
Получает объект JavaScript 'window' для фоновой страницы, работающей внутри текущего расширения/приложения. Если фоновая страница является страницей события, система гарантирует ее загрузку перед вызовом функции обратного вызова. Если фоновой страницы нет, устанавливается ошибка.
Параметры
- перезвонить
функция необязательна
Параметр
callbackвыглядит следующим образом:(backgroundPage?: Window) => void
- фоновая страница
Окно (по желанию)
Объект JavaScript 'window' для фоновой страницы.
Возвраты
Promise<Window | undefined>
Chrome 99+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
getManifest()
chrome.runtime.getManifest(): object
Возвращает подробную информацию о приложении или расширении из манифеста. Возвращаемый объект представляет собой сериализацию полного файла манифеста .
Возвраты
объект
Подробности манифеста.
getPackageDirectoryEntry()
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
- platformInfo
Возвраты
Promise< PlatformInfo >
Chrome 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
Возвраты
Обещание<пустота>
Chrome 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
- результат
объект
Chrome 109+Объект RequestUpdateCheckResult, содержащий статус проверки обновления и любые подробности результата, если обновление доступно.
- статус
Результат проверки обновлений.
- версия
строка необязательный
Если доступно обновление, здесь указана версия доступного обновления.
Возвраты
Promise<object>
Chrome 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
Возвраты
Обещание<пустота>
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
- ответ
любой
Объект JSON-ответа, отправленный обработчиком сообщения. Если при подключении к расширению возникает ошибка, будет вызвана функция обратного вызова без аргументов, а
runtime.lastErrorбудет установлено сообщение об ошибке.
Возвраты
Обещание<любое>
Chrome 99+Поддержка промисов доступна только для Manifest V3 и более поздних версий; для других платформ необходимо использовать колбэки.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
): Promise<any>
Отправка одного сообщения в нативное приложение. Для этого метода требуется разрешение "nativeMessaging" .
Параметры
- приложение
нить
Имя собственного хоста обмена сообщениями.
- сообщение
объект
Сообщение, которое будет передано на собственный сервер обмена сообщениями.
- перезвонить
функция необязательна
Chrome 99+Параметр
callbackвыглядит следующим образом:(response: any) => void
- ответ
любой
Ответное сообщение, отправленное собственным сервером обмена сообщениями. Если при подключении к собственному серверу обмена сообщениями возникает ошибка, будет вызвана функция обратного вызова без аргументов, а
runtime.lastErrorбудет установлено сообщение об ошибке.
Возвраты
Обещание<любое>
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+Поддержка промисов доступна только для 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.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.
Параметры
- перезвонить
функция
Параметр
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
- подробности
объект
- версия
нить
Номер версии доступного обновления.