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

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/*"
      ]
    }
  ],
  ...
}