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

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

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

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

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

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

मेनिफ़ेस्ट

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

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 के लिए, अपनी एपीआई अनुमतियों के अलावा, होस्ट करने की अनुमतियों की भी ज़रूरत होती है. इनके बारे में, हर रेफ़रंस पेज पर बताया गया है. यहां कुछ उदाहरण दिए गए हैं:

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

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

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

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

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

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

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

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

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

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

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

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