externally_connectable

externally_connectable मेनिफ़ेस्ट प्रॉपर्टी से यह पता चलता है कि कौनसे एक्सटेंशन, ऐप्लिकेशन, और वेब पेज runtime.connect और runtime.sendMessage के ज़रिए आपके ऐप्लिकेशन से कनेक्ट किए जा सकते हैं.

मैसेज पास करने से जुड़े ट्यूटोरियल के लिए, क्रॉस-एक्सटेंशन और ऐप्लिकेशन मैसेज सेवा और वेब पेजों से मैसेज भेजना देखें.

external_connectable के बिना कनेक्ट किया जा रहा है

अगर आपके ऐप्लिकेशन के मेनिफ़ेस्ट में externally_connectable का एलान नहीं किया गया है, तो सभी एक्सटेंशन और ऐप्लिकेशन कनेक्ट कर पाएंगे, लेकिन कोई भी वेबपेज कनेक्ट नहीं हो पाएगा. इस वजह से, externally_connectable का इस्तेमाल करने के लिए अपने मेनिफ़ेस्ट को अपडेट करते समय, अगर "ids": ["*"] के बारे में जानकारी नहीं दी जाती है, तो दूसरे एक्सटेंशन और ऐप्लिकेशन आपके ऐप्लिकेशन से कनेक्ट नहीं कर पाएंगे. यह अनचाहा नतीजा हो सकता है. इसलिए, इस बात का ध्यान रखें.

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

रेफ़रंस

external_connectable की मेनिफ़ेस्ट कुंजी में ये प्रॉपर्टी हो सकती हैं:

  • ids (स्ट्रिंग की श्रेणी) - ज़रूरी नहीं

    उन एक्सटेंशन या ऐप्लिकेशन के आईडी जिन्हें कनेक्ट करने की अनुमति है. अगर खाली या तय न किया गया हो, तो कोई भी एक्सटेंशन या ऐप्लिकेशन कनेक्ट नहीं किए जा सकते.

    वाइल्डकार्ड "*" से, सभी एक्सटेंशन और ऐप्लिकेशन को कनेक्ट किया जा सकेगा.

  • matches (स्ट्रिंग की श्रेणी) - ज़रूरी नहीं

    वेब पेजों के लिए ऐसे यूआरएल पैटर्न जिन्हें कनेक्ट करने की अनुमति है. इससे कॉन्टेंट की स्क्रिप्ट पर असर नहीं पड़ता. अगर इसे खाली छोड़ दिया जाता है या इसे सेट नहीं किया जाता है, तो किसी भी वेब पेज को कनेक्ट नहीं किया जा सकता.

    पैटर्न में वाइल्डकार्ड डोमेन या (लागू होने वाले) टॉप लेवल डोमेन के सबडोमेन शामिल नहीं हो सकते. *://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 को कभी भी सेट नहीं किया जाएगा, तो उसे कभी भी सेट नहीं किया जाएगा.