chrome.runtime

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.

Présentation

L'API Runtime fournit des méthodes pour prendre en charge un certain nombre de fonctionnalités que vos extensions peuvent utiliser:

Transmission des messages
Votre extension peut communiquer avec différents contextes au sein de votre extension, mais aussi avec d'autres extensions à l'aide des méthodes et événements suivants: connect(), onConnect, onConnectExternal, sendMessage(), onMessage et onMessageExternal. De plus, votre extension peut transmettre des messages aux applications natives sur l'appareil de l'utilisateur en utilisant connectNative() et sendNativeMessage().
Accéder aux métadonnées des extensions et des plates-formes
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() et getPlatformInfo().
Gérer le cycle de vie des extensions et leurs options
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() setUninstallURL().
Utilitaires d'aide
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 sont les suivantes : getURL().
Utilitaires en mode kiosque
Ces méthodes ne sont disponibles que sur ChromeOS et servent principalement à implémenter des kiosques. Les méthodes de cette catégorie incluent restart et restartAfterDelay.

Autorisations

La plupart des méthodes de l'API Runtime ne nécessitent aucune autorisation, sauf sendNativeMessage et connectNative, qui permettent nécessitent l'autorisation nativeMessaging.

Fichier manifeste

L'exemple suivant montre comment déclarer l'autorisation nativeMessaging dans le fichier manifeste:

manifest.json:

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

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 composants 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 composants 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 du service worker vers un script de contenu

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. À la place, l'extension peut utiliser des messages transmettre pour se coordonner entre 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 un message get-user-data 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);
});

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

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 d'extensions

Pour voir d'autres exemples d'API Runtime, consultez la démo Manifest V3 - Web Accessible Resources.

Types

ContextFilter

Chrome 114 ou version ultérieure

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. Ainsi, un filtre de `{}` correspondra à 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

Chrome 114 ou version ultérieure

É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

Chrome 114 ou version ultérieure

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 non défini si ce contexte n'est pas hébergé dans un document.

  • documentOrigin

    chaîne facultatif

    Origine du document associée à ce contexte ou non définie si le contexte n'est pas hébergé dans un document.

  • documentUrl

    chaîne facultatif

    URL du document associé à ce contexte. Elle n'est pas 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 et versions ultérieures

    UUID du document qui a ouvert la connexion.

  • documentLifecycle

    chaîne facultatif

    Chrome 106 ou version ultérieure

    Cycle de vie du document ayant 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

    numéro facultatif

    Le cadre qui a ouvert la connexion. 0 pour les trames de niveau supérieur, positif pour les trames enfants. Il ne sera défini que si tab est défini.

  • id

    chaîne facultatif

    ID de l'extension qui a ouvert la connexion, le cas échéant.

  • nativeApplication

    chaîne facultatif

    Chrome 74 ou version ultérieure

    Nom de l'application native qui a ouvert la connexion, le cas échéant.

  • origine

    chaîne facultatif

    Chrome 80 ou version ultérieure

    Origine de la page ou du cadre qui a ouvert la connexion. Elle peut différer de la propriété d'URL (about:blank, par exemple) ou opaque (par exemple, iFrame en bac à sable). Cela permet de déterminer si l'origine peut être fiable lorsque l'URL ne nous permet pas de la déterminer immédiatement.

  • tabulation

    Tabulation facultatif

    Le 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'agira de l'URL de l'iFrame, et non de l'URL de la page qui l'héberge.

OnInstalledReason

Chrome 44 ou version ultérieure

Raison pour laquelle cet événement est envoyé.

É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'une extension.

"chrome_update"
Spécifie la raison de l'événement comme étant une mise à jour de Chrome.

"shared_module_update"
Spécifie le motif de l'événement en tant que mise à jour d'un module partagé.

OnRestartRequiredReason

Chrome 44 ou version ultérieure

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 à jour 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

&quot;app_update&quot;
Spécifie le motif de l'événement en tant que 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 le motif de l'événement en tant que redémarrage périodique de l'application.

PlatformArch

Chrome 44 ou version ultérieure

Architecture du processeur de la machine.

Énumération

"arm"
Spécifie l'architecture du processeur en tant que "arm".

"arm64"
Spécifie l'architecture du processeur comme arm64.

"x86-32"
Spécifie l'architecture de l'outil de traitement au format x86-32.

"x86-64"
Spécifie l'architecture de l'outil de traitement au format x86-64.

"mips"
Spécifie l'architecture du processus sous forme de mips.

"mips64"
Spécifie l'architecture du processus au format mips64.

PlatformInfo

Objet contenant des informations sur la plate-forme actuelle.

Propriétés

  • arche

    Architecture du processeur de la machine.

  • nacl_arch

    Architecture du client natif. Il peut être différent de "arch" sur certaines plates-formes.

  • Système d'exploitation sur lequel Chrome est exécuté.

PlatformNaclArch

Chrome 44 ou version ultérieure

Architecture cliente native. Il peut être différent de l'arche sur certaines plates-formes.

Énumération

"arm"
Spécifie l'architecture cliente native en tant que "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 cliente native sous la forme de mips.

"mips64"
Spécifie l'architecture cliente native au format mips64.

PlatformOs

Chrome 44 ou version ultérieure

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é des autres extrémités runtime.lastError peut être défini si le port a été déconnecté par une erreur. Si le port est fermé via la fonctionnalité de déconnexion, cet événement se déclenche uniquement à l'autre extrémité. Cet événement est déclenché au maximum une fois (voir également Durée de vie du port).

    La fonction onDisconnect.addListener se présente comme suit:

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

    • rappel

      fonction

      Le paramètre callback se présente comme suit:

      (port: Port) => void

  • onMessage

    Événement<functionvoid>

    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) => {...}

    • rappel

      fonction

      Le paramètre callback se présente comme suit:

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

      • message

        tous

      • port
  • expéditeur

    MessageSender facultatif

    Cette propriété sera uniquement présente 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 envoyé à 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 générée.

    La fonction postMessage se présente comme suit :

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

    • message

      tous

      Chrome (version 52 ou ultérieure)

      Message à envoyer. Cet objet doit pouvoir être utilisé au format JSON.

RequestUpdateCheckStatus

Chrome 44 ou version ultérieure

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"
Spécifie qu'une mise à jour est disponible à installer.

Propriétés

id

ID de l'extension/application.

Type

chaîne

lastError

Inséré avec 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 entre les applications et les extensions, et la messagerie Web. Notez que cette méthode ne se connecte à aucun paramètre "Listener" 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. En cas d'omission, 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 via lequel les messages peuvent être envoyés et reçus avec l'application

getBackgroundPage()

Promesse Premier plan uniquement
chrome.runtime.getBackgroundPage(
  callback?: function,
)

Récupère la fenêtre JavaScript "window". pour la page en arrière-plan exécutée dans l'extension ou 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érieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

getContexts()

Promise Chrome 116 ou version ultérieure MV3 ou version ultérieure
chrome.runtime.getContexts(
  filter: ContextFilter,
  callback?: function,
)

Extrait des informations sur les contextes actifs associés à cette extension

Paramètres

  • filtre

    Filtre permettant de trouver les 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

Renvoie

  • Promise<ExtensionContext[]>

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

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

Promesse Premier plan uniquement
chrome.runtime.getPackageDirectoryEntry(
  callback?: function,
)

Renvoie une entrée 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érieure

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

getPlatformInfo()

<ph type="x-smartling-placeholder"></ph> Promesse
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

Renvoie

  • Promise <PlatformInfo>

    Chrome 99 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

getURL()

chrome.runtime.getURL(
  path: string,
)

Convertit en URL complète un chemin d'accès relatif contenu dans un répertoire d'installation d'application ou d'extension.

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

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.runtime.openOptionsPage(
  callback?: function,
)

Si possible, ouvrez la page d'options de votre extension.

Le comportement précis peut dépendre de la clé [options_ui](https://developer.chrome.com/docs/extensions/develop/ui/options-page#embedded_options) ou [options_page](https://developer.chrome.com/docs/extensions/develop/ui/options-page#full_page) de votre fichier manifeste, ou de ce que Chrome prend en charge à ce moment-là. Par exemple, la page peut être ouverte dans un nouvel onglet, dans chrome://extensions, dans une application, ou simplement sur une page d'options ouverte. Cela n'entraînera 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 ou version ultérieure

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

reload()

chrome.runtime.reload()

Actualise l'application ou l'extension. Cette méthode n'est pas disponible en mode Kiosque. Pour le mode kiosque, utilisez la méthode chrome.runtime.restart().

requestUpdateCheck()

Promesse
chrome.runtime.requestUpdateCheck(
  callback?: function,
)

Demande une vérification immédiate des mises à jour de cette application ou de cette 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 deux ou trois heures. Vous pouvez donc é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, cette fonction renvoie les deux propriétés sous la forme d'arguments distincts transmis au rappel au lieu de renvoyer un objet.

Paramètres

  • rappel

    fonction facultatif

    Le paramètre callback se présente comme suit :

    (result: object) => void

    • résultat

      objet

      Chrome 109 et versions ultérieures

      Objet RequestUpdateCheckResult qui contient l'état de la vérification des mises à jour et tous 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 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

restart()

chrome.runtime.restart()

Redémarrez l'appareil ChromeOS lorsque l'application s'exécute en mode Kiosque. Sinon, il s'agit d'une opération no-op.

restartAfterDelay()

Promise Chrome 53 et versions ultérieures
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 non 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

    Délai d'attente en secondes avant de redémarrer 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 ou version ultérieure

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

sendMessage()

Promesse
chrome.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
  callback?: function,
)

Envoie un seul message aux écouteurs d'événements au sein 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 vous envoyez l'événement à votre extension, l'événement runtime.onMessage sera déclenché dans chaque frame de votre extension (sauf celle de l'expéditeur) ou runtime.onMessageExternal s'il s'agit d'une extension différente. 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 la chaîne TLS sera transmis à onMessageExternal pour les processus qui écoutent l'événement de connexion.

  • rappel

    function facultatif

    Chrome 99 ou version ultérieure

    Le 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 argument, et runtime.lastError est défini sur le message d'erreur.

Renvoie

  • Promesse<any>

    Chrome 99 ou version ultérieure

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

sendNativeMessage()

Promesse
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

    function facultatif

    Chrome 99 et versions ultérieures

    Le 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 native, le rappel est appelé sans argument et runtime.lastError est défini sur le message d'erreur.

Renvoie

  • Promesse<any>

    Chrome 99 ou version ultérieure

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

setUninstallURL()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.runtime.setUninstallURL(
  url: string,
  callback?: function,
)

Définit l'URL à consulter lors de la désinstallation. Cela peut être utilisé pour nettoyer les données côté serveur, effectuer des analyses et mettre en œuvre 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

    function facultatif

    Chrome 45 et versions ultérieures

    Le paramètre callback se présente comme suit:

    () => void

Renvoie

  • Promise<void>

    Chrome 99 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

Événements

onBrowserUpdateAvailable

Obsolète
chrome.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

Veuillez utiliser runtime.onRestartRequired.

Déclenché lorsqu'une mise à jour de Chrome est disponible, mais 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

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

onConnectNative

Chrome 76 ou version ultérieure
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". Il n'est compatible qu'avec Chrome OS.

Paramètres

  • rappel

    fonction

    Le paramètre callback se présente comme suit:

    (port: Port) => void

onInstalled

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

Déclenché lors de la première installation de l'extension, de la mise à jour de l'extension et de la mise à jour de Chrome.

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

      • 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ée 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

      boolean | indéfinie

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é. L'application doit fermer toutes ses fenêtres dès que possible pour permettre le redémarrage. Si l'application ne fait rien, l'application redémarre après un délai de grâce de 24 heures. Actuellement, cet événement n'est déclenché que pour les applications kiosque Chrome OS.

Paramètres

onStartup

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

Déclenché lors du premier démarrage d'un profil sur lequel cette extension est installée. Cet événement n'est pas déclenché au démarrage d'un profil de navigation privée, même si cette extension fonctionne en mode fractionné le mode navigation privé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 son déchargement. 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 l'activité de la page d'événement se poursuit avant son déchargement, l'événement onSuspendCanceled est envoyé et la page n'est pas déchargé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 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 possède 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 115 ou version ultérieure MV3+
chrome.runtime.onUserScriptConnect.addListener(
  callback: function,
)

Déclenché lorsqu'une connexion est établie à partir d'un script utilisateur à partir de cette extension.

Paramètres

  • rappel

    fonction

    Le paramètre callback se présente comme suit:

    (port: Port) => void

onUserScriptMessage

Chrome 115 ou version ultérieure MV3+
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

      boolean | indéfinie