externally_connectable

Die Manifest-Property externally_connectable deklariert, welche Erweiterungen, Apps und Webseiten Stellen Sie über runtime.connect und runtime.sendMessage eine Verbindung zu Ihrer Erweiterung her.

Eine Anleitung zur Weitergabe von Nachrichten finden Sie unter Erweiterungs- und App-übergreifende Nachrichtenübermittlung und Nachrichten senden von Webseiten.

Verbindung ohne „external_connectable“ herstellen

Wenn externally_connectable nicht im Manifest Ihrer Erweiterung deklariert ist, werden alle Erweiterungen und Apps kann eine Verbindung herstellen, aber keine Webseiten. Wenn Sie Ihr Manifest aktualisieren, externally_connectable, wenn "ids": ["*"] nicht angegeben ist, werden andere Erweiterungen und Apps können Sie keine Verbindung mehr mit Ihrer Erweiterung herstellen. Dies könnte eine unbeabsichtigte Folge sein, also belassen Sie es im Hinterkopf, denken.

Beispielmanifest.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
  },
  ...
}

Referenz

Der Manifestschlüssel „external_connectable“ kann die folgenden Attribute haben:

  • ids (Array von String) – optional

    Die IDs der Erweiterungen oder Apps, die eine Verbindung herstellen dürfen. Wenn leer oder nicht angegeben, nein oder Apps eine Verbindung herstellen können.

    Mit dem Platzhalter „"*"“ können alle Erweiterungen und Apps eine Verbindung herstellen.

  • matches (Array von String) – optional

    Die URL-Muster für Webseiten, die eine Verbindung herstellen dürfen. Dies hat keine Auswirkungen auf die Inhalte. Skripts erstellt. Wenn das Feld leer oder nicht angegeben ist, können keine Webseiten verbunden werden.

    Muster dürfen keine Platzhalter-Domains oder Subdomains von effektiven Top-Level-Domains enthalten. *://google.com/* und http://*.chromium.org/* sind gültig, <all_urls>, http://*/*, *://*.com/* und sogar http://*.appspot.com/* nicht.

  • accepts_tls_channel_id (boolesch) – optional

    Bei true werden über runtime.connect oder runtime.sendMessage gesendete Nachrichten festgelegt runtime.MessageSender.tlsChannelId, wenn diese Methoden dies anfordern. Wenn false, runtime.MessageSender.tlsChannelId wird unter keinen Umständen festgelegt.