externally_connectable

"externally_connectable" मेनिफ़ेस्ट प्रॉपर्टी से पता चलता है कि कौनसे एक्सटेंशन और वेब पेजों को runtime.connect() और runtime.sendMessage() का इस्तेमाल करके, अपने एक्सटेंशन से कनेक्ट करें.

मैसेज भेजे जाने के ट्यूटोरियल के लिए, क्रॉस-एक्सटेंशन मैसेजिंग और मैसेज भेजना देखें मिलते हैं.

External_connectable के बिना कनेक्ट करें

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

मेनिफ़ेस्ट

{
  "name": "My externally connectable extension",
  "externally_connectable": {
    "ids": [
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
      ...
    ],
    // If this field is not specified, no web pages can connect.
    "matches": [
      "https://*.google.com/*",
      "*://*.chromium.org/*",
      ...
    ],
    "accepts_tls_channel_id": false
  },
  ...
}

रेफ़रंस

"externally_connectable" मेनिफ़ेस्ट कुंजी में ये ज़रूरी नहीं प्रॉपर्टी शामिल हैं:

"ids"
उन एक्सटेंशन के आईडी जिन्हें कनेक्ट किया जा सकता है. अगर इसे खाली छोड़ दिया जाता है या बताया नहीं जाता, तो किसी भी एक्सटेंशन या ऐप्लिकेशन को कनेक्ट नहीं किया जा सकता. वाइल्डकार्ड "*" से सभी एक्सटेंशन और ऐप्लिकेशन कनेक्ट हो जाएंगे.
"matches"
वेब पेजों के ऐसे यूआरएल पैटर्न जिन्हें कनेक्ट करने की अनुमति है. अगर इसे खाली छोड़ दिया जाता है या बताया नहीं जाता है, तो कोई भी वेब पेज कनेक्ट नहीं किया जा सकता. पैटर्न में वाइल्डकार्ड डोमेन या (असरदार) टॉप लेवल डोमेन के सबडोमेन शामिल नहीं किए जा सकते. उदाहरण के लिए:
✅ मान्य यूआरएल ❌ अमान्य यूआरएल
*://example.com/ *://example.com/one/
http://*.example.org/* <all_urls>
https://example.com/* http://*/*
"accepts_tls_channel_id"
यह नीति, एक्सटेंशन को चालू करने वाले वेब पेज के TLS चैनल आईडी का इस्तेमाल करती है. वेब पेज को एक्सटेंशन में TLS चैनल आईडी भेजने का विकल्प भी चुनना होगा. इसके लिए, रनटाइम.connect के connectInfo या रनटाइम.sendMessage के विकल्प में, includeTlsChannelId से true तक. अगर false पर सेट है, तो किसी भी स्थिति में, runtime.MessageSender.tlsChannelId को कभी भी सेट नहीं किया जाएगा.

इससे कॉन्टेंट स्क्रिप्ट पर कोई असर नहीं पड़ता.