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가 설정되지 않습니다.

이는 콘텐츠 스크립트에는 영향을 미치지 않습니다.