externally_connectable

"externally_connectable" マニフェスト プロパティは、runtime.connect()runtime.sendMessage() を使用して拡張機能に接続できる拡張機能とウェブページを宣言します。

メッセージの受け渡しに関するチュートリアルについては、クロス拡張メッセージングウェブページからのメッセージの送信をご覧ください。

external_connectable を使用せずに接続する

拡張機能のマニフェストで externally_connectable キーが宣言されていない場合、すべての拡張機能が接続できますが、ウェブページは接続できません。そのため、externally_connectable を使用するようにマニフェストを更新する際に、"ids": ["*"] を指定しないと、他の拡張機能が拡張機能に接続できなくなります。これは意図しない結果になる可能性があるため、心に留めておいてください。

マニフェスト

{
  "name": "My externally connectable extension",
  "externally_connectable": {
    "ids": [
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
      ...
    ],
    // If this field is not specified, no web pages can connect.
    "matches": [
      "https://*.google.com/*",
      "*://*.chromium.org/*",
      ...
    ],
    "accepts_tls_channel_id": false
  },
  ...
}

リファレンス

"externally_connectable" マニフェスト キーには、次の省略可能なプロパティが含まれます。

"ids"
接続が許可されている拡張機能の ID。空白または未指定の場合、拡張機能やアプリは接続できません。ワイルドカード "*" を使用すると、すべての拡張機能とアプリが接続できるようになります。
"matches"
接続が許可されているウェブページの URL パターン。空白または未指定の場合、どのウェブページも接続できません。パターンに、ワイルドカード ドメインや、(有効な)トップレベル ドメインのサブドメインを含めることはできません。次に例を示します。
✅ 有効な URL ❌ 無効な URL
*://example.com/ *://example.com/one/
http://*.example.org/* <all_urls>
https://example.com/* http://*/*
"accepts_tls_channel_id"
拡張機能に接続するウェブページの TLS チャネル ID を使用できるようにします。また、ウェブページでは、runtime.connect の connectInfo または runtime.sendMessage の オプションincludeTlsChannelIdtrue に設定して、拡張機能に TLS チャネル ID を送信する必要があります。false に設定すると、どのような状況でも runtime.MessageSender.tlsChannelId が設定されることはありません。

コンテンツ スクリプトには影響しません。