अनुमतियों का एलान करना

ज़्यादातर एक्सटेंशन एपीआई और सुविधाओं का इस्तेमाल करने के लिए, आपको मेनिफ़ेस्ट के अनुमतियों वाले फ़ील्ड में, अपने एक्सटेंशन के मकसद के बारे में बताना होगा. एक्सटेंशन, अनुमतियों की इन कैटगरी के लिए अनुरोध कर सकते हैं. इन्हें मेनिफ़ेस्ट की संबंधित कुंजियों का इस्तेमाल करके तय किया जाता है:

"permissions"
इसमें जानी-पहचानी स्ट्रिंग की सूची में शामिल आइटम मौजूद हैं. बदलावों की वजह से, चेतावनी मिल सकती है.
"optional_permissions"
यह अनुमति, इंस्टॉल करने के समय के बजाय रनटाइम में उपयोगकर्ता से ली जाती है.
"content_scripts.matches"
इसमें एक या उससे ज़्यादा मिलान वाले पैटर्न शामिल होते हैं. इनकी मदद से, कॉन्टेंट स्क्रिप्ट को एक या उससे ज़्यादा होस्ट में इंजेक्ट किया जा सकता है. बदलावों की वजह से, चेतावनी मिल सकती है.
"host_permissions"
इसमें एक या उससे ज़्यादा मैच पैटर्न होते हैं. इनसे एक या उससे ज़्यादा होस्ट को ऐक्सेस मिलता है. बदलावों की वजह से, चेतावनी मिल सकती है.
"optional_host_permissions"
इसे इंस्टॉल करने के समय के बजाय, रनटाइम में उपयोगकर्ता से अनुमति मिलती है.

अनुमतियों की मदद से, मैलवेयर से एक्सटेंशन के हैक होने पर होने वाले नुकसान को कम किया जा सकता है. कुछ अनुमतियों के लिए, उपयोगकर्ताओं को चेतावनियां दिखाई जाती हैं. ये चेतावनियां, ऐप्लिकेशन इंस्टॉल करने से पहले या रनटाइम में उनकी सहमति लेने के लिए दिखाई जाती हैं. इस बारे में ज़्यादा जानकारी, चेतावनी वाली अनुमति लेख में दी गई है.

अपने एक्सटेंशन की सुविधा के हिसाब से, ज़रूरी नहीं वाली अनुमतियों का इस्तेमाल करें. इससे लोगों को संसाधनों और डेटा के ऐक्सेस को कंट्रोल करने के बारे में जानकारी मिलेगी.

अगर किसी एपीआई के लिए अनुमति की ज़रूरत होती है, तो उसके दस्तावेज़ में यह बताया जाता है कि अनुमति का एलान कैसे किया जाए. उदाहरण के लिए, Storage API देखें.

मेनिफ़ेस्ट

यहां मेनिफ़ेस्ट फ़ाइल के अनुमतियां सेक्शन का उदाहरण दिया गया है:

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

होस्ट की अनुमतियां

होस्ट की अनुमतियों की मदद से एक्सटेंशन, यूआरएल के मिलते-जुलते पैटर्न के साथ इंटरैक्ट कर सकते हैं. कुछ Chrome API को, एपीआई की अनुमतियों के साथ-साथ होस्ट की अनुमतियों की भी ज़रूरत होती है. इनके बारे में हर रेफ़रंस पेज पर बताया गया है. यहां कुछ उदाहरण दिए गए हैं:

कुछ खास मामलों में, होस्ट करने की अनुमतियों की ज़रूरत नहीं होती. इनमें शामिल हैं:

  • टैब ऐक्सेस करने और उनमें बदलाव करने के लिए, chrome.tabs एपीआई का इस्तेमाल करना. इसमें टैब के यूआरएल को ऐक्सेस करना भी शामिल है. हालांकि, इसके लिए आपके पास tabs अनुमति होनी चाहिए.
  • chrome.debugger एपीआई का इस्तेमाल करके, ब्राउज़र से इंटरैक्ट करना.
  • मेनिफ़ेस्ट में बताई गई कॉन्टेंट स्क्रिप्ट को इंजेक्ट करने की अनुमति देना.

चेतावनी वाली अनुमतियां

जब कोई एक्सटेंशन कई अनुमतियों का अनुरोध करता है और उनमें से कई अनुमतियों के लिए, इंस्टॉल करते समय चेतावनियां दिखती हैं, तो उपयोगकर्ता को चेतावनियों की एक सूची दिखेगी. जैसे, इस उदाहरण में दिखाया गया है:

एक्सटेंशन इंस्टॉल करते समय अनुमतियों से जुड़ी चेतावनियां

उपयोगकर्ताओं के किसी ऐसे एक्सटेंशन पर भरोसा करने की संभावना ज़्यादा होती है जिसमें चेतावनियां कम हों या उन्हें अनुमतियों के बारे में बताया गया हो. ज़रूरी नहीं है कि अनुमतियां दी जाएं या कम पावर वाले एपीआई का इस्तेमाल किया जाए, ताकि चेतावनी वाली सूचनाएं न दिखें. चेतावनी देने के सबसे सही तरीकों के बारे में जानने के लिए, अनुमति से जुड़ी चेतावनी के दिशा-निर्देश देखें. अनुमतियां रेफ़रंस सूची में, उन अनुमतियों के साथ खास चेतावनियां दी गई हैं जिन पर वे लागू होती हैं.

मेनिफ़ेस्ट फ़ाइल के "host_permissions" और "content_scripts.matches" फ़ील्ड में मैच पैटर्न जोड़ने या बदलने पर भी, चेतावनी ट्रिगर होगी. ज़्यादा जानने के लिए, अनुमतियां अपडेट करना लेख पढ़ें.

ऐक्सेस करने की अनुमति दें

अगर आपके एक्सटेंशन को file:// यूआरएल पर चलाना है या गुप्त मोड में काम करना है, तो उपयोगकर्ताओं को एक्सटेंशन के ज़्यादा जानकारी वाले पेज पर जाकर, उसे ऐक्सेस करने की अनुमति देनी होगी. अपने एक्सटेंशन मैनेज करें में जाकर, ज़्यादा जानकारी वाला पेज खोलने के निर्देश देखे जा सकते हैं.

फ़ाइल के यूआरएल और गुप्त पेजों को ऐक्सेस करने की अनुमति दें

  1. Chrome में एक्सटेंशन आइकॉन पर राइट क्लिक करें.
  2. एक्सटेंशन मैनेज करें को चुनें.

    एक्सटेंशन का कॉन्टेक्स्ट मेन्यू
    एक्सटेंशन मेन्यू
  3. फ़ाइल के यूआरएल या गुप्त मोड का ऐक्सेस चालू करने के लिए, नीचे की ओर स्क्रोल करें.

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

यह पता लगाने के लिए कि उपयोगकर्ता ने ऐक्सेस की अनुमति दी है या नहीं, extension.isAllowedIncognitoAccess() या extension.isAllowedFileSchemeAccess() को कॉल किया जा सकता है.