मेनिफ़ेस्ट अपडेट करें

V2 मेनिफ़ेस्ट को V3 मेनिफ़ेस्ट में बदलना

मेनिफ़ेस्ट V3 और मेनिफ़ेस्ट V2 के लिए, manifest.json फ़ाइल का फ़ॉर्मैट थोड़ा अलग होना चाहिए. इस पेज पर उन बदलावों के बारे में बताया गया है जो सिर्फ़ manifest.json फ़ाइल पर असर डालते हैं. हालांकि, स्क्रिप्ट और पेजों में किए गए कई बदलावों के लिए, मेनिफ़ेस्ट में कुछ बदलाव करने की भी ज़रूरत होती है. ये बदलाव, माइग्रेशन टास्क में शामिल किए गए हैं. इनके लिए ये बदलाव ज़रूरी हैं.

मेनिफ़ेस्ट वर्शन नंबर बदलें

"manifest_version" फ़ील्ड की वैल्यू को 2 से बदलकर 3 करें.

मेनिफ़ेस्ट V2
{
  ...
  "manifest_version": 2
  ...
}
मेनिफ़ेस्ट V3
{
  ...
  "manifest_version": 3
  ...
}

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

मेनिफ़ेस्ट V3 में होस्ट की अनुमतियां एक अलग फ़ील्ड है. इसकी जानकारी, "permissions" या "optional_permissions" में नहीं दी जाती.

कॉन्टेंट स्क्रिप्ट, "content_scripts.matches" में ही मौजूद रहेंगी. "content_scripts.matches" के बारे में जानकारी के लिए, स्टैटिक एलानों के साथ इंजेक्ट करें देखें.

मेनिफ़ेस्ट V2
{
  ...
  "permissions": [
    "tabs",
    "bookmarks",
    "https://www.blogger.com/",
  ],
  "optional_permissions": [
    "unlimitedStorage",
    "*://*/*",
  ]
  ...
}
मेनिफ़ेस्ट V3
{
  ...
  "permissions": [
    "tabs",
    "bookmarks"
  ],
  "optional_permissions": [
    "unlimitedStorage"
  ],
  "host_permissions": [
    "https://www.blogger.com/",
  ],
  "optional_host_permissions": [
    "*://*/*",
  ]
  ...
}

वेब ऐक्सेस करने लायक संसाधनों को अपडेट करें

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

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

नीचे दिए गए उदाहरण में, मेनिफ़ेस्ट V2 और मेनिफ़ेस्ट V3 के बीच, वेब पर ऐक्सेस किए जा सकने वाले संसाधनों की तुलना की गई है. मेनिफ़ेस्ट V2 में, डिफ़ॉल्ट रूप से सभी वेब साइटों पर, बताए गए रिसॉर्स को ऐक्सेस किया जा सकता था. नीचे दिखाए गए मेनिफ़ेस्ट V3 कोड में, ये रिसॉर्स सिर्फ़ https://example.com के लिए उपलब्ध हैं. हालांकि, सभी वेबसाइटों पर कुछ ही इमेज उपलब्ध हैं.

ज़्यादा जानकारी के लिए, वेब से ऐक्सेस किए जा सकने वाले संसाधन और मैच पैटर्न देखें.

मेनिफ़ेस्ट V2
{
  ...
  "web_accessible_resources": [
    "images/*",
    "style/extension.css",
    "script/extension.js"
  ],
  ...
}
मेनिफ़ेस्ट V3
{
  ...
    "web_accessible_resources": [
    {
      "resources": [
        "images/*"
      ],
      "matches": [
        "*://*/*"
      ]
    },
    {
      "resources": [
        "style/extension.css",
        "script/extension.js"
      ],
      "matches": [
        "https://example.com/*"
      ]
    }
  ],
  ...
}