Description
Utilisez l'API chrome.runtime
pour récupérer le service worker, renvoyer des informations sur le fichier manifeste, et écouter et répondre aux événements du cycle de vie de l'extension. Vous pouvez également utiliser cette API pour convertir le chemin relatif des URL en URL complètes.
La plupart des membres de cette API ne nécessitent aucune autorisation. Cette autorisation est nécessaire pour connectNative()
, sendNativeMessage()
et onNativeConnect
.
L'exemple suivant montre comment déclarer l'autorisation "nativeMessaging"
dans le fichier manifeste:
manifest.json:
{
"name": "My extension",
...
"permissions": [
"nativeMessaging"
],
...
}
Concepts et utilisation
L'API Runtime fournit des méthodes pour prendre en charge un certain nombre de domaines que vos extensions peuvent utiliser:
- Transmission de messages
- Votre extension peut communiquer avec différents contextes au sein de votre extension, ainsi qu'avec d'autres extensions à l'aide des méthodes et événements suivants :
connect()
,onConnect
,onConnectExternal
,sendMessage()
,onMessage
etonMessageExternal
. De plus, votre extension peut transmettre des messages à des applications natives sur l'appareil de l'utilisateur à l'aide deconnectNative()
et desendNativeMessage()
.
- Accéder aux métadonnées de l'extension et de la plate-forme
- Ces méthodes vous permettent de récupérer plusieurs métadonnées spécifiques sur l'extension et la plate-forme. Les méthodes de cette catégorie incluent
getManifest()
etgetPlatformInfo()
. - Gérer le cycle de vie et les options des extensions
- Ces propriétés vous permettent d'effectuer des méta-opérations sur l'extension et d'afficher la page des options.
Les méthodes et événements de cette catégorie incluent
onInstalled
,onStartup
,openOptionsPage()
,reload()
,requestUpdateCheck()
etsetUninstallURL()
. - Utilitaires d'assistance
- Ces méthodes fournissent des utilitaires tels que la conversion des représentations de ressources internes en formats externes. Les méthodes de cette catégorie incluent
getURL()
. - Utilitaires en mode kiosque
- Ces méthodes ne sont disponibles que sur ChromeOS et servent principalement à prendre en charge les implémentations de kiosques.
Les méthodes de cette catégorie incluent
restart()
etrestartAfterDelay()
`.
Comportement des extensions non décompressées
Lorsqu'une extension décompressée est rechargée, elle est traitée comme une mise à jour. Cela signifie que l'événement chrome.runtime.onInstalled
se déclenchera avec le motif "update"
. Cela inclut le rechargement de l'extension avec chrome.runtime.reload()
.
Cas d'utilisation
Ajouter une image à une page Web
Pour qu'une page Web accède à un composant hébergé sur un autre domaine, elle doit spécifier l'URL complète de la ressource (par exemple, <img src="https://example.com/logo.png">
). Il en va de même pour inclure un composant d'extension sur une page Web. Les deux différences sont que les éléments de l'extension doivent être exposés en tant que ressources accessibles sur le Web et que, généralement, les scripts de contenu sont chargés d'injecter les éléments de l'extension.
Dans cet exemple, l'extension ajoutera logo.png
à la page dans laquelle le script de contenu est injecté à l'aide de runtime.getURL()
pour créer une URL entièrement qualifiée. Toutefois, l'asset doit d'abord être déclaré comme ressource accessible sur le Web dans le fichier manifeste.
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);
}
Envoyer des données d'un script de contenu au service worker
Il est courant que les scripts de contenu d'une extension aient besoin de données gérées par une autre partie de l'extension, comme le service worker. Tout comme deux fenêtres de navigateur ouvertes sur la même page Web, ces deux contextes ne peuvent pas accéder directement aux valeurs de l'autre. Au lieu de cela, l'extension peut utiliser la transmission de messages pour coordonner ces différents contextes.
Dans cet exemple, le script de contenu a besoin de données du service worker de l'extension pour initialiser son UI. Pour obtenir ces données, il transmet le message get-user-data
défini par le développeur au service worker, qui répond avec une copie des informations de l'utilisateur.
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);
}
});
Recueillir des commentaires sur la désinstallation
De nombreuses extensions utilisent des enquêtes post-désinstallation pour comprendre comment elles pourraient mieux servir leurs utilisateurs et améliorer la fidélisation. L'exemple suivant montre comment ajouter cette fonctionnalité.
background.js:
chrome.runtime.onInstalled.addListener(details => {
if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.runtime.setUninstallURL('https://example.com/extension-survey');
}
});
Exemples
Pour voir d'autres exemples d'API Runtime, consultez la démo Manifest V3 – Ressources accessibles sur le Web.
Types
ContextFilter
Filtre à faire correspondre à certains contextes d'extension. Les contextes correspondants doivent correspondre à tous les filtres spécifiés. Tout filtre non spécifié correspond à tous les contextes disponibles. Par conséquent, un filtre de type "{}" correspond à tous les contextes disponibles.
Propriétés
-
contextIds
string[] facultatif
-
contextTypes
ContextType[] facultatif
-
documentIds
string[] facultatif
-
documentOrigins
string[] facultatif
-
documentUrls
string[] facultatif
-
frameIds
number[] facultatif
-
navigation privée
booléen facultatif
-
tabIds
number[] facultatif
-
windowIds
number[] facultatif
ContextType
Énumération
"TAB"
Spécifie le type de contexte en tant qu'onglet
"POPUP"
Spécifie le type de contexte en tant que fenêtre pop-up d'extension
"BACKGROUND"
Spécifie le type de contexte en tant que service worker.
"OFFSCREEN_DOCUMENT"
Spécifie le type de contexte en tant que document hors écran.
"SIDE_PANEL"
Spécifie le type de contexte en tant que panneau latéral.
"DEVELOPER_TOOLS"
Spécifie le type de contexte comme étant les outils pour les développeurs.
ExtensionContext
Contexte héberge par le contenu de l'extension.
Propriétés
-
ID de contexte
chaîne
Identifiant unique de ce contexte
-
contextType
Type de contexte auquel cela correspond.
-
documentId
chaîne facultatif
UUID du document associé à ce contexte, ou valeur non définie si ce contexte n'est pas hébergé dans un document.
-
documentOrigin
chaîne facultatif
Origine du document associé à ce contexte, ou valeur non définie si le contexte n'est pas hébergé dans un document.
-
documentUrl
chaîne facultatif
URL du document associé à ce contexte, ou valeur non définie si le contexte n'est pas hébergé dans un document.
-
frameId
Nombre
ID du frame pour ce contexte, ou -1 si ce contexte n'est pas hébergé dans un frame.
-
navigation privée
booléen
Indique si le contexte est associé à un profil de navigation privée.
-
tabId
Nombre
ID de l'onglet pour ce contexte, ou -1 si ce contexte n'est pas hébergé dans un onglet.
-
windowId
Nombre
ID de la fenêtre pour ce contexte, ou -1 si ce contexte n'est pas hébergé dans une fenêtre.
MessageSender
Objet contenant des informations sur le contexte de script ayant envoyé un message ou une requête.
Propriétés
-
documentId
chaîne facultatif
Chrome 106 ou version ultérieureUUID du document qui a ouvert la connexion.
-
documentLifecycle
chaîne facultatif
Chrome 106 ou version ultérieureCycle de vie du document qui a ouvert la connexion au moment de la création du port. Notez que l'état du cycle de vie du document peut avoir changé depuis la création du port.
-
frameId
number facultatif
Cadre ayant ouvert la connexion. 0 pour les trames de niveau supérieur, positif pour les trames enfants. Cette valeur n'est définie que lorsque
tab
est défini. -
id
chaîne facultatif
ID de l'extension ayant ouvert la connexion, le cas échéant.
-
nativeApplication
chaîne facultatif
Chrome 74 ou version ultérieureNom de l'application native qui a ouvert la connexion, le cas échéant.
-
origine
chaîne facultatif
Chrome 80 ou version ultérieureOrigine de la page ou du frame ayant ouvert la connexion. Elle peut différer de la propriété d'URL (par exemple, "about:blank") ou être opaque (par exemple, les iFrames en bac à sable). Cela permet de déterminer si l'origine peut être fiable si nous ne pouvons pas le savoir immédiatement à partir de l'URL.
-
tabulation
Onglet facultatif
tabs.Tab
qui a ouvert la connexion, le cas échéant. Cette propriété n'est présente que lorsque la connexion a été ouverte à partir d'un onglet (y compris les scripts de contenu) et uniquement si le destinataire est une extension, et non une application. -
tlsChannelId
chaîne facultatif
ID de canal TLS de la page ou du frame ayant ouvert la connexion, si demandé par l'extension et si disponible.
-
url
chaîne facultatif
URL de la page ou du frame ayant ouvert la connexion. Si l'expéditeur se trouve dans un iFrame, il s'agit de l'URL de l'iFrame, et non de l'URL de la page qui l'héberge.
OnInstalledReason
Raison pour laquelle cet événement est distribué.
Énumération
"install"
Spécifie la raison de l'événement comme étant une installation.
"update"
Spécifie la raison de l'événement en tant que mise à jour d'extension.
"chrome_update"
Spécifie la raison de l'événement comme étant une mise à jour de Chrome.
"shared_module_update"
Spécifie la raison de l'événement comme étant une mise à jour d'un module partagé.
OnRestartRequiredReason
Raison pour laquelle l'événement est distribué. "app_update" est utilisé lorsque le redémarrage est nécessaire, car l'application est mise à jour vers une version plus récente. "os_update" est utilisé lorsque le redémarrage est nécessaire, car le navigateur/l'OS est mis à niveau vers une version plus récente. "periodic" est utilisé lorsque le système s'exécute pendant plus de temps d'activité autorisé défini dans la règle d'entreprise.
Énumération
"app_update"
Spécifie la raison de l'événement comme étant une mise à jour de l'application.
"os_update"
Spécifie la raison de l'événement comme étant une mise à jour du système d'exploitation.
"periodic"
Spécifie la raison de l'événement comme étant un redémarrage périodique de l'application.
PlatformArch
Architecture du processeur de la machine.
Énumération
"arm"
Spécifie l'architecture du processeur comme arm.
"arm64"
Spécifie l'architecture du processeur comme arm64.
"x86-32"
Spécifie l'architecture du processeur comme x86-32.
"x86-64"
Spécifie l'architecture du processeur comme x86-64.
"mips"
Spécifie l'architecture du processeur comme mips.
"mips64"
Spécifie l'architecture du processeur comme mips64.
PlatformInfo
Objet contenant des informations sur la plate-forme actuelle.
Propriétés
-
arc
Architecture du processeur de la machine.
-
nacl_arch
Architecture du client natif. Il peut être différent de "arch" sur certaines plates-formes.
-
os
Système d'exploitation sur lequel Chrome s'exécute.
PlatformNaclArch
Architecture du client natif. Il peut être différent de "arch" sur certaines plates-formes.
Énumération
"arm"
Spécifie l'architecture client native comme arm.
"x86-32"
Spécifie l'architecture client native comme x86-32.
"x86-64"
Spécifie l'architecture client native comme x86-64.
"mips"
Spécifie l'architecture client native en tant que mips.
"mips64"
Spécifie l'architecture cliente native comme mips64.
PlatformOs
Système d'exploitation sur lequel Chrome s'exécute.
Énumération
"mac"
Spécifie le système d'exploitation macOS.
"win"
Spécifie le système d'exploitation Windows.
"android"
Spécifie le système d'exploitation Android.
cros
Spécifie le système d'exploitation Chrome.
"linux"
Spécifie le système d'exploitation Linux.
"openbsd"
Spécifie le système d'exploitation OpenBSD.
"fuchsia"
Spécifie le système d'exploitation Fuchsia.
Port
Objet permettant une communication bidirectionnelle avec d'autres pages. Pour en savoir plus, consultez la section Connexions durables.
Propriétés
-
nom
chaîne
Nom du port, tel que spécifié dans l'appel de
runtime.connect
. -
onDisconnect
Event<functionvoidvoid>
Déclenché lorsque le port est déconnecté de l'autre ou des autres extrémités.
runtime.lastError
peut être défini si le port a été déconnecté par erreur. Si le port est fermé via disconnect, cet événement n'est que déclenché à l'autre extrémité. Cet événement est déclenché au maximum une fois (voir également la section Durée de vie du port).La fonction
onDisconnect.addListener
se présente comme suit :(callback: function) => {...}
-
onMessage
Event<functionvoidvoid>
Cet événement est déclenché lorsque postMessage est appelé par l'autre extrémité du port.
La fonction
onMessage.addListener
se présente comme suit :(callback: function) => {...}
-
expéditeur
MessageSender facultatif
Cette propriété ne sera présente que sur les ports transmis aux écouteurs onConnect / onConnectExternal / onConnectNative.
-
déconnecter
vide
Déconnectez immédiatement le port. L'appel de
disconnect()
sur un port déjà déconnecté n'a aucun effet. Lorsqu'un port est déconnecté, aucun nouvel événement n'est distribué à ce port.La fonction
disconnect
se présente comme suit :() => {...}
-
postMessage
vide
Envoyez un message à l'autre extrémité du port. Si le port est déconnecté, une erreur est renvoyée.
La fonction
postMessage
se présente comme suit :(message: any) => {...}
-
message
tous
Chrome 52 et versions ultérieuresMessage à envoyer. Cet objet doit être encodable en JSON.
-
RequestUpdateCheckStatus
Résultat de la vérification de la mise à jour.
Énumération
"throttled"
Spécifie que la vérification de l'état a été limitée. Cela peut se produire après des vérifications répétées sur une courte période.
"no_update"
Indique qu'aucune mise à jour n'est disponible à installer.
"update_available"
Indique qu'une mise à jour est disponible à installer.
Propriétés
id
ID de l'extension/application.
Type
chaîne
lastError
Renseigné par un message d'erreur si l'appel d'une fonction d'API échoue. Sinon, valeur non définie. Cette valeur n'est définie que dans le champ d'application du rappel de cette fonction. Si une erreur est générée, mais que runtime.lastError
n'est pas accessible dans le rappel, un message est consigné dans la console, indiquant la fonction de l'API à l'origine de l'erreur. Les fonctions d'API qui renvoient des promesses ne définissent pas cette propriété.
Type
objet
Propriétés
-
message
chaîne facultatif
Détails de l'erreur qui s'est produite.
Méthodes
connect()
chrome.runtime.connect(
extensionId?: string,
connectInfo?: object,
)
Tentative de connexion d'écouteurs dans une extension (telle que la page en arrière-plan) ou d'autres extensions/applications. Cela est utile pour les scripts de contenu qui se connectent à leurs processus d'extension, la communication inter-application/extension et la messagerie Web. Notez que cette opération ne se connecte à aucun écouteur dans un script de contenu. Les extensions peuvent se connecter aux scripts de contenu intégrés aux onglets via tabs.connect
.
Paramètres
-
extensionId
chaîne facultatif
ID de l'extension à laquelle se connecter. Si cette valeur n'est pas spécifiée, une tentative de connexion sera effectuée avec votre propre extension. Obligatoire si vous envoyez des messages depuis une page Web pour la messagerie Web.
-
connectInfo
objet facultatif
-
includeTlsChannelId
booléen facultatif
Indique si l'ID de canal TLS sera transmis à onConnectExternal pour les processus qui écoutent l'événement de connexion.
-
nom
chaîne facultatif
Sera transmis à onConnect pour les processus qui écoutent l'événement de connexion.
-
Renvoie
-
Port par lequel les messages peuvent être envoyés et reçus. L'événement onDisconnect du port est déclenché si l'extension n'existe pas.
connectNative()
chrome.runtime.connectNative(
application: string,
)
Se connecte à une application native sur la machine hôte. Cette méthode nécessite l'autorisation "nativeMessaging"
. Pour en savoir plus, consultez la section Messagerie native.
Paramètres
-
application
chaîne
Nom de l'application enregistrée à laquelle se connecter.
Renvoie
-
Port par lequel les messages peuvent être envoyés et reçus avec l'application
getBackgroundPage()
chrome.runtime.getBackgroundPage(
callback?: function,
)
Récupère l'objet JavaScript "window" pour la page en arrière-plan exécutée dans l'extension/l'application actuelle. Si la page en arrière-plan est une page d'événement, le système s'assure qu'elle est chargée avant d'appeler le rappel. Si aucune page de fond n'est définie, une erreur est définie.
Paramètres
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(backgroundPage?: Window) => void
-
backgroundPage
Fenêtre (facultatif)
Objet JavaScript "window" pour la page en arrière-plan.
-
Renvoie
-
Promise<Window | undefined>
Chrome 99 et versions ultérieuresLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
getContexts()
chrome.runtime.getContexts(
filter: ContextFilter,
callback?: function,
)
Récupère des informations sur les contextes actifs associés à cette extension.
Paramètres
-
filtre
Filtre permettant de trouver des contextes correspondants. Un contexte correspond si tous les champs spécifiés dans le filtre lui correspondent. Tout champ non spécifié dans le filtre correspond à tous les contextes.
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(contexts: ExtensionContext[]) => void
-
contexts
Contextes correspondants, le cas échéant.
-
Renvoie
-
Promise<ExtensionContext[]>
Les promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
getManifest()
chrome.runtime.getManifest()
Renvoie des informations sur l'application ou l'extension à partir du fichier manifeste. L'objet renvoyé est une sérialisation du fichier manifeste complet.
Renvoie
-
objet
Détails du fichier manifeste.
getPackageDirectoryEntry()
chrome.runtime.getPackageDirectoryEntry(
callback?: function,
)
Renvoie un DirectoryEntry pour le répertoire du package.
Paramètres
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(directoryEntry: DirectoryEntry) => void
-
directoryEntry
DirectoryEntry
-
Renvoie
-
Promise<DirectoryEntry>
Chrome 122 ou version ultérieureLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
getPlatformInfo()
chrome.runtime.getPlatformInfo(
callback?: function,
)
Renvoie des informations sur la plate-forme actuelle.
Paramètres
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(platformInfo: PlatformInfo) => void
-
platformInfo
-
Renvoie
-
Promise<PlatformInfo>
Chrome 99 et versions ultérieuresLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
getURL()
chrome.runtime.getURL(
path: string,
)
Convertit un chemin d'accès relatif dans un répertoire d'installation d'application/d'extension en URL complète.
Paramètres
-
chemin d'accès
chaîne
Chemin d'accès à une ressource dans une application/extension, exprimé par rapport à son répertoire d'installation.
Renvoie
-
chaîne
URL complète de la ressource.
openOptionsPage()
chrome.runtime.openOptionsPage(
callback?: function,
)
Ouvrez la page des options de votre extension, si possible.
Le comportement exact peut dépendre de la clé options_ui
ou options_page
de votre fichier manifeste, ou de ce que Chrome accepte à ce moment-là. Par exemple, la page peut s'ouvrir dans un nouvel onglet, dans chrome://extensions, dans une application ou simplement mettre en surbrillance une page d'options ouverte. Cela ne provoque jamais l'actualisation de la page de l'appelant.
Si votre extension ne déclare pas de page d'options ou si Chrome ne parvient pas à en créer une pour une autre raison, le rappel définira lastError
.
Paramètres
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 99 et versions ultérieuresLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
reload()
chrome.runtime.reload()
Actualise l'application ou l'extension. Cette méthode n'est pas compatible avec le mode kiosque. Pour le mode kiosque, utilisez la méthode chrome.runtime.restart().
requestUpdateCheck()
chrome.runtime.requestUpdateCheck(
callback?: function,
)
Demande une vérification immédiate de la mise à jour de cette application/extension.
Important: La plupart des extensions/applications ne doivent pas utiliser cette méthode, car Chrome effectue déjà des vérifications automatiques toutes les quelques heures. Vous pouvez écouter l'événement runtime.onUpdateAvailable
sans avoir à appeler requestUpdateCheck.
Cette méthode ne convient qu'à des cas très limités, par exemple si votre extension communique avec un service backend et que ce service a déterminé que la version de l'extension cliente est très obsolète et que vous souhaitez inviter un utilisateur à la mettre à jour. La plupart des autres utilisations de requestUpdateCheck, comme l'appeler inconditionnellement en fonction d'un minuteur répétitif, ne servent probablement qu'à gaspiller des ressources client, réseau et serveur.
Remarque: Lorsqu'elle est appelée avec un rappel, au lieu de renvoyer un objet, cette fonction renvoie les deux propriétés en tant qu'arguments distincts transmis au rappel.
Paramètres
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :(result: object) => void
-
résultat
objet
Chrome 109 ou version ultérieureObjet RequestUpdateCheckResult qui contient l'état de la vérification de mise à jour et les détails du résultat si une mise à jour est disponible
-
Résultat de la vérification de la mise à jour.
-
version
chaîne facultatif
Si une mise à jour est disponible, elle contient la version de la mise à jour disponible.
-
-
Renvoie
-
Promise<object>
Chrome 109 ou version ultérieureLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
restart()
chrome.runtime.restart()
Redémarrez l'appareil ChromeOS lorsque l'application s'exécute en mode Kiosque. Sinon, aucune action n'est effectuée.
restartAfterDelay()
chrome.runtime.restartAfterDelay(
seconds: number,
callback?: function,
)
Redémarrez l'appareil ChromeOS lorsque l'application s'exécute en mode Kiosque après le nombre de secondes indiqué. Si l'appel est répété avant la fin du délai, le redémarrage est retardé. Si elle est appelée avec une valeur de -1, le redémarrage est annulé. Il s'agit d'une opération "no-op" en mode autre que Kiosque. Elle ne peut être appelée de manière répétée que par la première extension à appeler cette API.
Paramètres
-
secondes
Nombre
Durée d'attente en secondes avant le redémarrage de l'appareil, ou -1 pour annuler un redémarrage planifié.
-
rappel
fonction facultatif
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 99 et versions ultérieuresLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
sendMessage()
chrome.runtime.sendMessage(
extensionId?: string,
message: any,
options?: object,
callback?: function,
)
Envoie un seul message aux écouteurs d'événements de votre extension ou d'une autre extension/application. Semblable à runtime.connect
, mais n'envoie qu'un seul message, avec une réponse facultative. Si l'envoi est effectué vers votre extension, l'événement runtime.onMessage
est déclenché dans chaque frame de votre extension (sauf dans le frame de l'expéditeur), ou runtime.onMessageExternal
, s'il s'agit d'une autre extension. Notez que les extensions ne peuvent pas envoyer de messages aux scripts de contenu à l'aide de cette méthode. Pour envoyer des messages aux scripts de contenu, utilisez tabs.sendMessage
.
Paramètres
-
extensionId
chaîne facultatif
ID de l'extension à laquelle envoyer le message. Si elle est omise, le message sera envoyé à votre propre extension/application. Obligatoire si vous envoyez des messages depuis une page Web pour la messagerie Web.
-
message
tous
Message à envoyer. Ce message doit être un objet pouvant être converti en JSON.
-
options
objet facultatif
-
includeTlsChannelId
booléen facultatif
Indique si l'ID de canal TLS sera transmis à onMessageExternal pour les processus qui écoutent l'événement de connexion.
-
-
rappel
fonction facultatif
Chrome 99 et versions ultérieuresLe paramètre
callback
se présente comme suit :(response: any) => void
-
réponse
tous
Objet de réponse JSON envoyé par le gestionnaire du message. Si une erreur se produit lors de la connexion à l'extension, le rappel est appelé sans arguments et
runtime.lastError
est défini sur le message d'erreur.
-
Renvoie
-
Promise<any>
Chrome 99 et versions ultérieuresLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
sendNativeMessage()
chrome.runtime.sendNativeMessage(
application: string,
message: object,
callback?: function,
)
Envoyer un seul message à une application native Cette méthode nécessite l'autorisation "nativeMessaging"
.
Paramètres
-
application
chaîne
Nom de l'hôte de messagerie native.
-
message
objet
Message qui sera transmis à l'hôte de messagerie natif.
-
rappel
fonction facultatif
Chrome 99 et versions ultérieuresLe paramètre
callback
se présente comme suit :(response: any) => void
-
réponse
tous
Message de réponse envoyé par l'hôte de messagerie native. Si une erreur se produit lors de la connexion à l'hôte de messagerie natif, le rappel est appelé sans arguments et
runtime.lastError
est défini sur le message d'erreur.
-
Renvoie
-
Promise<any>
Chrome 99 et versions ultérieuresLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
setUninstallURL()
chrome.runtime.setUninstallURL(
url: string,
callback?: function,
)
Définit l'URL à consulter lors de la désinstallation. Vous pouvez l'utiliser pour nettoyer les données côté serveur, effectuer des analyses et implémenter des enquêtes. 1 023 caractères maximum.
Paramètres
-
url
chaîne
URL à ouvrir après la désinstallation de l'extension. Cette URL doit comporter un schéma http: ou https:. Définissez une chaîne vide pour ne pas ouvrir de nouvel onglet lors de la désinstallation.
-
rappel
fonction facultatif
Chrome 45 et versions ultérieuresLe paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 99 et versions ultérieuresLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse se résout avec le même type que celui transmis au rappel.
Événements
onBrowserUpdateAvailable
chrome.runtime.onBrowserUpdateAvailable.addListener(
callback: function,
)
Veuillez utiliser runtime.onRestartRequired
.
Déclenché lorsqu'une mise à jour de Chrome est disponible, mais qu'elle n'est pas installée immédiatement, car un redémarrage du navigateur est nécessaire.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :() => void
onConnect
chrome.runtime.onConnect.addListener(
callback: function,
)
Déclenché lorsqu'une connexion est établie à partir d'un processus d'extension ou d'un script de contenu (par runtime.connect
).
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(port: Port) => void
-
port
-
onConnectExternal
chrome.runtime.onConnectExternal.addListener(
callback: function,
)
Déclenché lorsqu'une connexion est établie à partir d'une autre extension (par runtime.connect
) ou d'un site Web connectable en externe.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(port: Port) => void
-
port
-
onConnectNative
chrome.runtime.onConnectNative.addListener(
callback: function,
)
Déclenché lorsqu'une connexion est établie à partir d'une application native. Cet événement nécessite l'autorisation "nativeMessaging"
. Elle n'est disponible que sur ChromeOS.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(port: Port) => void
-
port
-
onInstalled
chrome.runtime.onInstalled.addListener(
callback: function,
)
Déclenché lorsque l'extension est installée pour la première fois, lorsqu'elle est mise à jour vers une nouvelle version et lorsque Chrome est mis à jour vers une nouvelle version.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
id
chaîne facultatif
Indique l'ID de l'extension de module partagé importée qui a été mise à jour. Cette valeur n'est présente que si "reason" est "shared_module_update".
-
previousVersion
chaîne facultatif
Indique la version précédente de l'extension, qui vient d'être mise à jour. Ce champ n'est présent que si la valeur de "reason" est "update".
-
reason
Raison pour laquelle cet événement est distribué.
-
-
onMessage
chrome.runtime.onMessage.addListener(
callback: function,
)
Déclenché lorsqu'un message est envoyé à partir d'un processus d'extension (par runtime.sendMessage
) ou d'un script de contenu (par tabs.sendMessage
).
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
message
tous
-
expéditeur
-
sendResponse
fonction
Le paramètre
sendResponse
se présente comme suit :() => void
-
retours
booléen | undefined
-
onMessageExternal
chrome.runtime.onMessageExternal.addListener(
callback: function,
)
Déclenché lorsqu'un message est envoyé depuis une autre extension (par runtime.sendMessage
). Ne peut pas être utilisé dans un script de contenu.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
message
tous
-
expéditeur
-
sendResponse
fonction
Le paramètre
sendResponse
se présente comme suit :() => void
-
retours
booléen | undefined
-
onRestartRequired
chrome.runtime.onRestartRequired.addListener(
callback: function,
)
Déclenché lorsqu'une application ou l'appareil sur lequel elle s'exécute doit être redémarrée. L'application doit fermer toutes ses fenêtres dès que possible pour permettre le redémarrage. Si l'application ne fait rien, un redémarrage sera appliqué après un délai de grâce de 24 heures. Actuellement, cet événement n'est déclenché que pour les applications kiosque ChromeOS.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(reason: OnRestartRequiredReason) => void
-
reason
-
onStartup
chrome.runtime.onStartup.addListener(
callback: function,
)
Déclenché lors du premier démarrage d'un profil dans lequel cette extension est installée. Cet événement n'est pas déclenché lorsqu'un profil de navigation privée est lancé, même si cette extension fonctionne en mode navigation privée "fractionnée".
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :() => void
onSuspend
chrome.runtime.onSuspend.addListener(
callback: function,
)
Envoyé à la page de l'événement juste avant qu'elle ne soit supprimée. Cela permet à l'extension de nettoyer. Notez que, comme la page est en cours de déchargement, il n'est pas garanti que les opérations asynchrones lancées lors du traitement de cet événement soient terminées. Si d'autres activités se produisent sur la page de l'événement avant qu'elle ne soit supprimée, l'événement onSuspendCanceled est envoyé et la page n'est pas supprimée.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :() => void
onSuspendCanceled
chrome.runtime.onSuspendCanceled.addListener(
callback: function,
)
Envoyée après onSuspend pour indiquer que l'application ne sera finalement pas désinstallée.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :() => void
onUpdateAvailable
chrome.runtime.onUpdateAvailable.addListener(
callback: function,
)
Déclenché lorsqu'une mise à jour est disponible, mais qu'elle n'est pas installée immédiatement, car l'application est en cours d'exécution. Si vous ne faites rien, la mise à jour sera installée la prochaine fois que la page d'arrière-plan sera désinstallée. Si vous souhaitez qu'elle soit installée plus tôt, vous pouvez appeler explicitement chrome.runtime.reload(). Si votre extension utilise une page d'arrière-plan persistante, la page d'arrière-plan n'est bien entendu jamais désinstallée. Par conséquent, si vous n'appelez pas chrome.runtime.reload() manuellement en réponse à cet événement, la mise à jour ne sera installée qu'au prochain redémarrage de Chrome. Si aucun gestionnaire n'écoute cet événement et que votre extension dispose d'une page d'arrière-plan persistante, elle se comporte comme si chrome.runtime.reload() était appelé en réponse à cet événement.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
version
chaîne
Numéro de version de la mise à jour disponible.
-
-
onUserScriptConnect
chrome.runtime.onUserScriptConnect.addListener(
callback: function,
)
Déclenché lorsqu'une connexion est établie à partir d'un script utilisateur de cette extension.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(port: Port) => void
-
port
-
onUserScriptMessage
chrome.runtime.onUserScriptMessage.addListener(
callback: function,
)
Déclenché lorsqu'un message est envoyé à partir d'un script utilisateur associé à la même extension.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit :(message: any, sender: MessageSender, sendResponse: function) => boolean | undefined
-
message
tous
-
expéditeur
-
sendResponse
fonction
Le paramètre
sendResponse
se présente comme suit :() => void
-
retours
booléen | undefined
-