خارجی_قابل اتصال

ویژگی مانیفست externally_connectable اعلام می‌کند که کدام افزونه‌ها، برنامه‌ها و صفحات وب می‌توانند از طریق runtime.connect و runtime.sendMessage به برنامه افزودنی شما متصل شوند.

برای آموزش ارسال پیام، به پیام‌رسانی و ارسال پیام از صفحات وب به برنامه افزودنی و پیام‌رسانی مراجعه کنید.

اتصال بدون خارجی_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
  },
  ...
}

مرجع

کلید مانیفست externally_connectable می تواند ویژگی های زیر را داشته باشد:

  • ids (آرایه از رشته) - اختیاری است

    شناسه برنامه‌های افزودنی یا برنامه‌هایی که مجاز به اتصال هستند. اگر خالی یا نامشخص بماند، هیچ برنامه افزودنی یا برنامه‌ای نمی‌تواند متصل شود.

    علامت عام "*" به همه برنامه‌های افزودنی و برنامه‌ها اجازه اتصال می‌دهد.

  • 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 هرگز تحت هیچ شرایطی تنظیم نخواهد شد.