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

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

manifest.json फ़ाइल के लिए, मेनिफ़ेस्ट V3 के मुकाबले मेनिफ़ेस्ट V2 का फ़ॉर्मैट थोड़ा अलग होना चाहिए. इस पेज पर उन बदलावों के बारे में बताया गया है जिनका असर सिर्फ़ 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/*"
      ]
    }
  ],
  ...
}