ज़्यादातर एक्सटेंशन एपीआई और सुविधाओं का इस्तेमाल करने के लिए, आपको मेनिफ़ेस्ट की अनुमति वाले फ़ील्ड में, अपने एक्सटेंशन के इंटेंट का एलान करना होगा. एक्सटेंशन, अनुमतियों की इन कैटगरी का अनुरोध कर सकते हैं, जिन्हें संबंधित मेनिफ़ेस्ट कुंजियों का इस्तेमाल करके तय किया गया है:
"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 को अपनी खुद की एपीआई अनुमतियों के अलावा होस्ट की अनुमतियों की ज़रूरत होती है, जिसे हर संदर्भ पेज पर दर्ज किया जाता है. यहां कुछ उदाहरण दिए गए हैं:
- एक्सटेंशन सर्विस वर्कर और एक्सटेंशन पेजों से
fetch()
अनुरोध करें. chrome.tabs
एपीआई का इस्तेमाल करके, संवेदनशील टैब प्रॉपर्टी (यूआरएल, टाइटल, और favIconUrl) को पढ़ें और उसके बारे में क्वेरी करें.- प्रोग्राम बनाकर कॉन्टेंट स्क्रिप्ट इंजेक्ट करें.
chrome.webRequest
एपीआई की मदद से, नेटवर्क के अनुरोधों पर नज़र रखें और उन्हें कंट्रोल करें.chrome.cookies
एपीआई की मदद से कुकी ऐक्सेस करें.chrome.declarativeNetRequest
एपीआई का इस्तेमाल करके, अनुरोधों और रिस्पॉन्स हेडर को रीडायरेक्ट और उनमें बदलाव करें.
चेतावनियों वाली अनुमतियां
जब कोई एक्सटेंशन कई अनुमतियों का अनुरोध करता है और उनमें से कई, इंस्टॉलेशन के बारे में चेतावनियां दिखाती हैं, तो उपयोगकर्ता को चेतावनियों की एक सूची दिखेगी, जैसा कि इस उदाहरण में दिखाया गया है:
उपयोगकर्ता ऐसे एक्सटेंशन पर भरोसा करते हैं जिसमें सीमित चेतावनियां होती हैं या जब उन्हें अनुमतियों के बारे में बताया जाता है. अलार्म वाली चेतावनियों से बचने के लिए, वैकल्पिक अनुमतियां या कम असरदार एपीआई लागू करें. चेतावनियों के लिए सबसे सही तरीके जानने के लिए, अनुमति की चेतावनियों से जुड़े दिशा-निर्देश देखें. खास चेतावनियों को उन अनुमतियों के साथ सूची में शामिल किया जाता है जिनके लिए, वे अनुमतियों से जुड़ी जानकारी की सूची में लागू होती हैं.
मेनिफ़ेस्ट फ़ाइल के "host_permissions"
और "content_scripts.matches"
फ़ील्ड में, मैच पैटर्न जोड़ने या बदलने से भी चेतावनी ट्रिगर होगी. ज़्यादा जानने के लिए, अनुमतियां अपडेट करना देखें.
ऐक्सेस करने की अनुमति दें
अगर आपके एक्सटेंशन को file://
यूआरएल पर चलाना है या गुप्त मोड में काम करना है, तो उपयोगकर्ताओं को ज़्यादा जानकारी वाले पेज पर, एक्सटेंशन को ऐक्सेस देना होगा. अपने एक्सटेंशन मैनेज करें में, ज़्यादा जानकारी वाला पेज खोलने के निर्देश देखे जा सकते हैं.
फ़ाइल के यूआरएल और गुप्त मोड वाले पेजों का ऐक्सेस दें
- Chrome में एक्सटेंशन आइकॉन पर राइट क्लिक करें.
एक्सटेंशन मैनेज करें को चुनें.
फ़ाइल के यूआरएल या गुप्त मोड का ऐक्सेस चालू करने के लिए, नीचे की ओर स्क्रोल करें.
यह पता लगाने के लिए कि उपयोगकर्ता ने ऐक्सेस दिया है या नहीं, extension.isAllowedIncognitoAccess()
या
extension.isAllowedFileSchemeAccess()
को कॉल करें.