मेनिफ़ेस्ट - वेब पर उपलब्ध संसाधन

स्ट्रिंग का ऐसा कलेक्शन जिसमें पैकेज किए गए रिसॉर्स के पाथ के बारे में बताया जाता है. इन रिसॉर्स को वेब पेज के कॉन्टेक्स्ट में इस्तेमाल किया जा सकता है. ये पाथ, पैकेज रूट से जुड़े होते हैं और इनमें वाइल्डकार्ड हो सकते हैं. उदाहरण के लिए, example.com के लिए कुछ कस्टम इंटरफ़ेस बनाने के इरादे से कॉन्टेंट स्क्रिप्ट इंजेक्ट करने वाला एक्सटेंशन, ऐसे सभी रिसॉर्स को अनुमति देगा जिनकी इंटरफ़ेस ज़रूरत होती है (इमेज, आइकॉन, स्टाइलशीट, स्क्रिप्ट वगैरह) को इस तरह से मंज़ूरी मिलेगी:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

इसके बाद, ये संसाधन chrome-extension://[PACKAGE ID]/[PATH] यूआरएल के ज़रिए वेबपेज में उपलब्ध होंगे. इसे extension.getURL तरीके से जनरेट किया जा सकता है. अनुमति वाली सूची में शामिल संसाधन, सही सीओआरएस हेडर के साथ दिखाए जाते हैं, ताकि वे XHR जैसे तरीके से उपलब्ध हों.

किसी वेब ऑरिजिन से एक्सटेंशन रिसॉर्स पर नेविगेट करने की सुविधा को तब तक ब्लॉक किया जाएगा, जब तक कि रिसॉर्स को वेब ऐक्सेस करने लायक के तौर पर लिस्ट नहीं किया जाता. इन कोने के केस पर ध्यान दें:

  • जब कोई एक्सटेंशन webRequest या declarativeWebRequest एपीआई का इस्तेमाल करके, सार्वजनिक संसाधन के अनुरोध को किसी ऐसे संसाधन पर रीडायरेक्ट करता है जिसे वेब से ऐक्सेस नहीं किया जा सकता, तो ऐसे अनुरोध को भी ब्लॉक कर दिया जाता है.
  • भले ही, ऐसे संसाधन का मालिकाना हक रीडायरेक्ट करने वाले एक्सटेंशन के पास हो, जो वेब पर ऐक्सेस नहीं किया जा सकता.

कॉन्टेंट स्क्रिप्ट को अनुमति वाली सूची में शामिल करने की ज़रूरत नहीं होती.

मेनिफ़ेस्ट वर्शन 2 से पहले, किसी एक्सटेंशन में मौजूद सभी संसाधनों को वेब पर मौजूद किसी भी पेज से ऐक्सेस किया जा सकता था. इससे नुकसान पहुंचाने वाली वेबसाइट को, किसी उपयोगकर्ता ने जो एक्सटेंशन इंस्टॉल किए हैं उन्हें फ़िंगरप्रिंट करने की अनुमति दी है. इसके अलावा, इंस्टॉल किए गए एक्सटेंशन में जोखिम की आशंकाओं (उदाहरण के लिए, XSS बग) का फ़ायदा उठाया जा सकता है. सिर्फ़ ऐसे संसाधनों को ऐक्सेस करने से बचें जो साफ़ तौर पर वेब पर ऐक्सेस करने के लिए बनाए गए हैं. इससे हमले की उपलब्ध जगह को कम करने और उपयोगकर्ताओं की निजता को सुरक्षित रखने में मदद मिलती है.

डिफ़ॉल्ट उपलब्धता

manifest_version 2 या इसके बाद के वर्शन का इस्तेमाल करने वाले पैकेज में मौजूद संसाधन, डिफ़ॉल्ट रूप से ब्लॉक होते हैं. साथ ही, उन्हें इस प्रॉपर्टी के ज़रिए इस्तेमाल करने की अनुमति वाली सूची में शामिल करना होगा.

manifest_version 1 का इस्तेमाल करने वाले पैकेज में मौजूद संसाधन, डिफ़ॉल्ट रूप से उपलब्ध होते हैं. if इस प्रॉपर्टी को सेट किया जाता है, तो इसे अनुमति वाली सूची में शामिल सभी संसाधनों की पूरी सूची के तौर पर माना जाएगा. सूची में नहीं दिए गए संसाधनों को ब्लॉक कर दिया जाएगा.