मेनिफ़ेस्ट V3 पर माइग्रेट करते समय होने वाली आम समस्याएं

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

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

प्लैटफ़ॉर्म गैप को खत्म करना

हम नए मेनिफ़ेस्ट V2 के बंद होने की टाइमलाइन का एलान करने से पहले, इन कमियों को खत्म करने के लिए प्रतिबद्ध हैं:

पार्टनर, गड़बड़ी की रिपोर्ट, और डेवलपर से मिले सुझाव, शिकायत या राय के आधार पर समस्याओं को इकट्ठा किया गया है. हम एक्सटेंशन प्लैटफ़ॉर्म की स्थिरता और पूरी परफ़ॉर्मेंस को बेहतर बनाने के लिए लगातार काम करते रहेंगे.

फ़िलहाल, ऐसी कोई भी समस्या मौजूद नहीं है जो प्लैटफ़ॉर्म गैप के लिए अहम हो.

इन समस्याओं को हाल ही में ठीक किया गया है:

  1. ChromeOS पर फ़ाइल मैनेज करने के लिए सहायता, chrome.fileBrowserHandler [Chrome 120] की जगह लेगा.
  2. User Script के लिए सहायता: नए userScripts API [Chrome 120] के साथ, कॉन्टेंट स्क्रिप्ट को आर्बिट्रेरी कोड के साथ रजिस्टर करने की अनुमति दें.
  3. कुछ कामों के लिए, अतिरिक्त मज़बूत सर्विस वर्कर कीपअविंग. इसमें पांच मिनट से ज़्यादा समय लग सकता है.
    • permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow(), और management.uninstall() के लिए, Chrome 116 में जोड़ा गया.
    • chrome.debugger के लिए Chrome 118 में जोड़ा गया
  4. डिक्लेरेटिव नेट अनुरोध (डीएनआर) के लिए, स्टैटिक और चालू नियमों की संख्या बढ़ाएं. चालू स्टैटिक नियमेट 10 से बढ़कर 50 हो गए और कुल स्टैटिक नियम सेट 50 से 100 [Chrome 120] किए गए.
  5. ऑफ़स्क्रीन दस्तावेज़ का इस्तेमाल करने की ज़्यादा वजहों को बेहतर बनाने के लिए, ऑफ़स्क्रीन दस्तावेज़ की सुविधा बढ़ाएं. GEOLOCATION को Chrome 116 में जोड़ा गया.
  6. chrome.tabCapture एपीआई [Chrome 116] के लिए सहायता:
    • किसी सर्विस वर्कर से getMediaStreamId() को कॉल करने में सहायता करें.
    • किसी ऑफ़स्क्रीन दस्तावेज़ में स्ट्रीम आईडी से MediaStream पाने के लिए सहायता.
  7. WebSocket कनेक्शन [Chrome 116] के चालू रहने के दौरान, सर्विस वर्कर की अवधि बढ़ाना.

Manifest V3 के बारे में अक्सर पूछे जाने वाले सवाल

सवाल: क्या हम लगातार सेवा देने वाले लोगों की मदद करने की योजना बना रहे हैं?
जवाब: बैकग्राउंड स्क्रिप्ट से सर्विस वर्कर पर माइग्रेट करने की मुख्य वजहों में से एक है, ज़्यादा मेमोरी-कुशल इवेंट-ड्रिवन प्रोग्रामिंग मॉडल. यह मॉडल, सर्विस वर्कर के काम को कुछ समय के लिए ही सेव करता है. इसलिए, हम लगातार सेवा देने वाले कर्मचारियों की मदद नहीं कर रहे हैं. हालांकि, एक्सटेंशन डेवलपर की खास ज़रूरतों को पूरा करने के लिए, हम सर्विस वर्कर की सुविधा में लगातार कई सुधार कर रहे हैं. खास तौर पर:

  • सभी एक्सटेंशन इवेंट और एपीआई कॉल, सेवा वर्कर के लाइफ़टाइम की अवधि बढ़ा देंगे.
  • नेटिव मैसेजिंग जैसे चुनिंदा इस्तेमाल के उदाहरणों से, एक्सटेंशन सर्विस वर्कर पांच मिनट से ज़्यादा समय तक जीवित रहेंगे.

सवाल: क्या सर्विस वर्कर में डीओएम को ऐक्सेस करने का कोई तरीका है?
जवाब: हम वेब वर्कर में डीओएम ऐक्सेस को शामिल न करने के लिए अपनाए गए तरीके का पालन करते हैं. इसमें सर्विस वर्कर भी शामिल होते हैं. सेवा कर्मियों से बैकग्राउंड DOM ऐक्सेस की ज़रूरत वाले इस्तेमाल के मामलों में मदद के लिए, हमने कुछ समय के लिए रहने वाले ऑफ़स्क्रीन दस्तावेज़ों को बैकग्राउंड के काम का ऐक्सेस देने की संभावना जोड़ी है जो पूरे DOM का ऐक्सेस देते हैं.

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

सवाल: मेरा Manifest V2 एक्सटेंशन, webRequestBlock पर निर्भर है, जो मेनिफ़ेस्ट V3 में काम नहीं करता. मैं मेनिफ़ेस्ट V3 में इसी तरह की सुविधा कैसे जारी रखूं?
जवाब: हमें भरोसा है कि इस्तेमाल के अनुरोधों को ब्लॉक करने के ज़्यादातर अनुरोधों को नए declarativeNetRequest API की मदद से हल किया जा सकता है. इससे इंटरप्रोसेस कम्यूनिकेशन की परफ़ॉर्मेंस ओवरहेड को बचाने, हर अनुरोध पर कोड को एक्ज़ीक्यूट करने या अनुरोध के समय एक्सटेंशन के चालू रहने की प्रक्रिया से बचने का एक और फ़ायदा मिलता है. हालांकि, एंटरप्राइज़ (या शिक्षा) के जटिल इस्तेमाल के लिए, डाइनैमिक अनुरोध ब्लॉक करने की सुविधा अब भी काम करती है.

क्या हमसे कुछ छूट गया? कृपया हमें बताएं.