मेनिफ़ेस्ट V3 पर माइग्रेट करें

Manifest V2 एक्सटेंशन को Manifest V3 एक्सटेंशन में बदलने के बारे में गाइड.

इस सेक्शन में, किसी एक्सटेंशन को Manifest V2 से Chrome एक्सटेंशन प्लैटफ़ॉर्म के नए वर्शन, Manifest V3 पर अपग्रेड करने के बारे में बताया गया है. माइग्रेशन के काम को मुख्य तौर पर इन कैटगरी में बांटा गया है. अपने काम को ट्रैक करने में आपकी मदद करने के लिए, हमने एक चेकलिस्ट दी है. इसमें इन दस्तावेज़ों के कॉन्टेंट के बारे में खास जानकारी दी गई है. चेकलिस्ट का इस्तेमाल करके कॉन्टेंट को ऐक्सेस किया जा सकता है या कॉन्टेंट को बारीकी से देखा जा सकता है. दोनों पाथ, अपग्रेड किए गए एक्सटेंशन पर खत्म होते हैं.

  • मेनिफ़ेस्ट अपडेट करेंmanifest.json को V3 के हिसाब से होना चाहिए. इस सेक्शन में, उन बदलावों के बारे में बताया गया है जिन्हें खुद से किया जा सकता है. कोड से जुड़े मेनिफ़ेस्ट में हुए बदलावों के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि ये बदलाव किन कोड के साथ काम करते हैं.
  • सर्विस वर्कर पर माइग्रेट करें—सर्विस वर्कर, एक्सटेंशन के बैकग्राउंड या इवेंट पेज की जगह लेता है. इससे यह पक्का होता है कि बैकग्राउंड कोड, मुख्य थ्रेड से अलग रहे. ऐसा इसलिए, ताकि परफ़ॉर्मेंस पर असर न पड़े. इस बदलाव के लिए, DOM, विंडो, और कुछ एक्सटेंशन एपीआई कॉल को ऑफ़स्क्रीन दस्तावेज़ों में ले जाना भी ज़रूरी है.
  • एपीआई कॉल अपडेट करें—कुछ एपीआई कॉल को ज़्यादा आधुनिक वर्शन से बदलना होगा.
  • वेब अनुरोधों को ब्लॉक करने वाले लिसनर को बदलें—Manifest V2 में नेटवर्क अनुरोधों को ब्लॉक करने या उनमें बदलाव करने से, परफ़ॉर्मेंस काफ़ी हद तक कम हो सकती है. साथ ही, इसके लिए उपयोगकर्ता के संवेदनशील डेटा का ज़्यादा ऐक्सेस ज़रूरी हो सकता है. Declarative Net Request API की मदद से, एक्सटेंशन कम अनुमतियों के साथ और परफ़ॉर्मेंस पर असर डाले बिना, वेब कॉन्टेंट को ब्लॉक या उसमें बदलाव कर सकते हैं.
  • एक्सटेंशन की सुरक्षा को बेहतर बनाता है—Manifest V3, एक्सटेंशन की सुरक्षा को कई तरह से बेहतर बनाता है. कॉन्टेंट की सुरक्षा के लिए बेहतर नीति के अलावा, रिमोटली होस्ट किए गए कोड और मनमाने स्ट्रिंग को चलाने की सुविधा हटा दी गई है.
  • अपना एक्सटेंशन पब्लिश करना—इस सेक्शन में, Manifest V3 एक्सटेंशन को चरणों में रिलीज़ करने का तरीका बताया गया है. इससे यह पक्का किया जा सकता है कि एक्सटेंशन उम्मीद के मुताबिक काम कर रहा है. इसके लिए, पहले इसे सीमित ऑडियंस के साथ टेस्ट करें.

हमारे पास एक्सटेंशन मेनिफ़ेस्ट कन्वर्टर भी है. यह आपके लिए सब कुछ नहीं करेगा, लेकिन इससे आपको शुरुआत करने में मदद मिलेगी. कन्वर्टर के README में बताया गया है कि टूल क्या बदलता है.

सुविधाओं का मौजूदा सेट बनाए रखें

अचानक सामने आने वाली समस्याओं या बग की संभावना को कम करने के लिए, हमारा सुझाव है कि माइग्रेट करते समय नई सुविधा न जोड़ें. उदाहरण के लिए, नई अनुमतियों की ज़रूरत वाली सुविधा जोड़ने पर, अनुमति से जुड़ी चेतावनी दिख सकती है. इससे, उपयोगकर्ता के नई अनुमतियां स्वीकार करने तक आपका एक्सटेंशन बंद हो जाएगा. बिना चेतावनी दिखाए अनुमतियां जोड़ने के अन्य तरीके जानने के लिए, अनुमति की चेतावनी के सबसे सही तरीके देखें.

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

एक्सटेंशन प्लैटफ़ॉर्म की नई सुविधाएं

Manifest V3 के रिलीज़ होने के बाद से, हम नई सुविधाएं जोड़ते रहे हैं. इनमें से कई सुविधाएं, Manifest V2 और Manifest V3, दोनों में इस्तेमाल की जा सकती हैं. कन्वर्ट करते समय, इनका इस्तेमाल करना ज़रूरी नहीं है. हालांकि, जब ये पुरानी सुविधाओं की जगह ले लेती हैं, तो आपको उन सुविधाओं के बजाय इनका इस्तेमाल करना चाहिए. साथ ही, आपको यह उम्मीद करनी चाहिए कि जिन सुविधाओं की जगह इन्हें लिया गया है उन्हें आखिर में बंद कर दिया जाएगा और हटा दिया जाएगा.