externally_connectable

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

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

externally_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"
接続を許可する ウェブページの照合パターン空のままにするか指定しない場合、ウェブページは接続できません。
"accepts_tls_channel_id"
拡張機能が接続先のウェブページの TLS チャネル ID を使用できるようにします。ウェブページは、TLS チャネル ID を拡張機能に送信するようにオプトインする必要があります。これには、runtime.connect の connectInfo または runtime.sendMessage の optionsincludeTlsChannelIdtrue に設定します。false に設定すると、 runtime.MessageSender.tlsChannelId はどのような状況でも設定されません。

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