externally_connectable

La propriété du fichier manifeste externally_connectable déclare les extensions, les applications et les pages Web qui peuvent Connectez-vous à votre extension via runtime.connect et runtime.sendMessage.

Pour accéder à un tutoriel sur la transmission de messages, consultez les articles sur la messagerie entre les extensions et les applications et sur l'envoi de messages à partir de pages Web.

Se connecter sans external_connectable

Si externally_connectable n'est pas déclaré dans le fichier manifeste de votre extension, toutes les extensions et applications peuvent se connecter, mais aucune page Web ne peut se connecter. Par conséquent, lorsque vous mettez à jour votre fichier manifeste afin d'utiliser externally_connectable, si "ids": ["*"] n'est pas spécifié, les autres extensions et applications ne pourra plus se connecter à votre extension. Il peut s'agir d'une conséquence inattendue. à l'esprit.

Exemple de fichier manifest.json

{
  "name": "My externally connectable extension",
  "externally_connectable": {
    // Extension and app IDs. If this field is not specified, no
    // extensions or apps can connect.
    "ids": [
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
      ...
      // Alternatively, to match all extensions and apps, specify only
      // "*".
      "*"
    ],
    // Match patterns for web pages. Does not affect content scripts.
    // If this field is not specified, no webpages can connect.
    "matches": [
      "https://*.google.com/*",
      "*://*.chromium.org/*",
      ...
    ],
    // Indicates that the extension would like to make use of the TLS
    // channel ID of the web page connecting to it. The web page must
    // also opt to send the TLS channel ID to the extension via setting
    // includeTlsChannelId to true in runtime.connect's connectInfo
    // or runtime.sendMessage's options.
    "accepts_tls_channel_id": false
  },
  ...
}

Référence

La clé du fichier manifeste external_connectable peut avoir les propriétés suivantes:

  • ids (tableau de chaînes) : facultatif

    Identifiants des extensions ou applications autorisées à se connecter. Si le champ n'est pas renseigné ou si aucune valeur n'est spécifiée, aucune les extensions ou les applications peuvent se connecter.

    Le caractère générique "*" permet à toutes les extensions et applications de se connecter.

  • matches (tableau de chaînes) : facultatif

    Formats d'URL des pages Web autorisées à se connecter. Cela n'affecte pas le contenu scripts. Si ce champ n'est pas spécifié, aucune page Web ne peut se connecter.

    Les formats ne peuvent pas inclure de domaines avec des caractères génériques ni de sous-domaines de domaines de premier niveau(effectifs). *://google.com/* et http://*.chromium.org/* sont valides, tandis que <all_urls>, http://*/*, *://*.com/* et même http://*.appspot.com/* ne le sont pas.

  • accepts_tls_channel_id (booléen) : facultatif

    Si la valeur est true, les messages envoyés via runtime.connect ou runtime.sendMessage seront définis runtime.MessageSender.tlsChannelId si ces méthodes le demandent. Si la valeur est false, runtime.MessageSender.tlsChannelId ne sera en aucun cas défini.