externally_connectable

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

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

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

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

نموذج البيان.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
  },
  ...
}

مَراجع

يمكن أن يحتوي مفتاح البيان external_connectable على الخصائص التالية:

  • ids (صفيف من السلاسل) - اختياري

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

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

  • matches (صفيف من السلاسل) - اختياري

    أنماط عناوين URL لصفحات الويب المسموح بربطها. ولا يؤثر ذلك في النصوص البرمجية للمحتوى. إذا تم تركها فارغة أو غير محدّدة، لن تتمكّن من ربط أي صفحات ويب.

    ولا يمكن أن تتضمن الأنماط نطاقات أحرف البدل أو النطاقات الفرعية لنطاقات المستوى الأعلى(الفعالة). تكون *://google.com/* وhttps://*.chromium.org/* صالحة، في حين أن <all_urls> وhttps://*/* و*://*.com/* وحتى https://*.appspot.com/* غير صالحة.

  • accepts_tls_channel_id (منطقي) - اختياري

    إذا تم true، سيتم ضبط الرسائل المُرسَلة عبر runtime.connect أو runtime.sendMessage على runtime.MessageSender.tlsChannelId إذا طلبت هاتان الطريقتان ذلك. إذا لم يتم ضبط false، لن يتم مطلقًا ضبط runtime.MessageSender.tlsChannelId تحت أي ظرف من الظروف.