externally_connectable

externally_connectable 매니페스트 속성은 어떤 확장 프로그램, 앱, 웹페이지를 선언할 수 있는지 runtime.connectruntime.sendMessage를 통해 확장 프로그램에 연결할 수 있습니다.

메시지 전달에 관한 가이드는 교차 확장 프로그램 및 앱 메시지메시지 보내기를 참고하세요. 웹페이지를 확인하세요.

external_connectable 없이 연결

확장 프로그램의 매니페스트에 externally_connectable가 선언되지 않으면 모든 확장 프로그램 및 앱이 연결할 수 있지만 어떤 웹페이지도 연결할 수 없습니다 따라서 매니페스트를 업데이트하여 externally_connectable, "ids": ["*"]를 지정하지 않으면 다른 확장 프로그램 및 앱에서 확장 프로그램에 연결할 수 없게 됩니다. 의도하지 않은 결과가 발생할 수 있으므로 생각해야 합니다.

샘플 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
  },
  ...
}

참조

external_connectable 매니페스트 키에는 다음 속성이 포함될 수 있습니다.

  • ids (문자열 배열) - 선택사항

    연결이 허용된 확장 프로그램 또는 앱의 ID입니다. 비워 두거나 지정하지 않으면 확장 프로그램 또는 앱을 연결할 수 있습니다.

    와일드 카드 "*"를 사용하면 모든 확장 프로그램 및 앱의 연결이 허용됩니다.

  • matches (문자열 배열) - 선택사항

    연결이 허용되는 웹페이지의 URL 패턴입니다. 이는 콘텐츠의 실행할 수 있습니다 비워 두거나 지정하지 않으면 웹페이지를 연결할 수 없습니다.

    패턴에는 와일드 카드 도메인이나 (유효한) 최상위 도메인의 하위 도메인이 포함될 수 없습니다. *://google.com/*http://*.chromium.org/*는 유효하지만 <all_urls>, http://*/*, *://*.com/*http://*.appspot.com/*조차 아닙니다.

  • accepts_tls_channel_id (불리언) - 선택사항

    true인 경우 runtime.connect 또는 runtime.sendMessage를 통해 전송되는 메시지가 해당 메서드가 요청하는 경우 runtime.MessageSender.tlsChannelId) false인 경우, runtime.MessageSender.tlsChannelId는 어떠한 경우에도 설정되지 않습니다.