externally_connectable

Properti manifes externally_connectable mendeklarasikan ekstensi, aplikasi, dan halaman web yang dapat terhubung ke aplikasi Anda melalui runtime.connect dan runtime.sendMessage.

Untuk tutorial tentang penerusan pesan, lihat ekstensi silang dan pesan aplikasi serta mengirim pesan dari halaman web.

Menghubungkan tanpa terhubung secara eksternal

Jika externally_connectable tidak dideklarasikan dalam manifes aplikasi, semua ekstensi dan aplikasi dapat terhubung, tetapi tidak ada halaman web yang dapat terhubung. Akibatnya, saat memperbarui manifes untuk menggunakan externally_connectable, jika "ids": ["*"] tidak ditentukan, ekstensi dan aplikasi lain akan kehilangan kemampuan untuk terhubung ke aplikasi Anda. Ini mungkin konsekuensi yang tidak diinginkan, jadi perhatikan hal ini.

Contoh manifest.json

{
  "name": "My externally connectable app",
  "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
  },
  ...
}

Referensi

Kunci manifes external_connectable dapat memiliki properti berikut:

  • ids (array string) - opsional

    ID ekstensi atau aplikasi yang diizinkan terhubung. Jika dibiarkan kosong atau tidak ditentukan, tidak ada ekstensi atau aplikasi yang dapat terhubung.

    Karakter pengganti "*" akan mengizinkan semua ekstensi dan aplikasi untuk terhubung.

  • matches (array string) - opsional

    Pola URL untuk halaman web yang diizinkan untuk terhubung. Hal ini tidak memengaruhi skrip konten. Jika dibiarkan kosong atau tidak ditentukan, tidak ada halaman web yang dapat terhubung.

    Pola tidak dapat menyertakan domain karakter pengganti atau subdomain dari domain level teratas(efektif); *://google.com/* dan https://*.chromium.org/* valid, sedangkan <all_urls>, https://*/*, *://*.com/*, dan bahkan https://*.appspot.com/* tidak valid.

  • accepts_tls_channel_id (boolean) - opsional

    Jika true, pesan yang dikirim melalui runtime.connect atau runtime.sendMessage akan menetapkan runtime.MessageSender.tlsChannelId jika metode tersebut memintanya. Jika false, runtime.MessageSender.tlsChannelId tidak akan pernah ditetapkan dalam keadaan apa pun.