externally_connectable

تحدّد سمة البيان externally_connectable الإضافات والتطبيقات وصفحات الويب التي يمكنها الربط بإضافتك من خلال runtime.connect وruntime.sendMessage.

للاطّلاع على برنامج تعليمي حول تمرير الرسائل، يمكنك الاطّلاع على المراسلة بين الإضافات والتطبيقات المختلفة وإرسال الرسائل من صفحات الويب.

الاتصال بدون الاتصال الخارجي

إذا لم يتم تضمين externally_connectable في ملف بيان الإضافة، يمكن ربط جميع الإضافات والتطبيقات، ولكن لن تتمكّن من الاتصال بأي صفحات ويب. نتيجةً لذلك، عند تحديث ملف البيان لاستخدام externally_connectable، وإذا لم يتم تحديد "ids": ["*"]، ستفقد الإضافات والتطبيقات الأخرى إمكانية الاتصال بإضافتك. قد تكون هذه نتيجة غير مقصودة، لذا ضعها في اعتبارك.

نموذج البيان.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 (صفيف من السلاسل) - اختياري

    أرقام تعريف الإضافات أو التطبيقات المسموح بربطها. إذا تم تركها فارغة أو غير محددة، لن تتمكن أي إضافات أو تطبيقات من الاتصال.

    سيسمح حرف البدل "*" بربط جميع الإضافات والتطبيقات.

  • 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 تحت أي ظرف من الظروف.