Chrome एक्सटेंशन में क्या हो रहा है?

अब तक, Chrome एक्सटेंशन के मामले में साल 2023 काफ़ी व्यस्त रहा है. आपके सुझावों से हमें एक्सटेंशन प्लैटफ़ॉर्म और अपने दस्तावेज़ को बेहतर बनाने में मदद मिली. हम Webएक्सटेंशन कम्यूनिटी ग्रुप में अन्य ब्राउज़र वेंडर के साथ भी काम करते रहेंगे. इससे, एक्सटेंशन एपीआई सभी ब्राउज़र पर एक जैसा काम करेंगे.

इस पोस्ट में, हम आपके साथ कुछ ऐसे बदलावों की जानकारी देंगे जिन पर Chrome एक्सटेंशन टीम ने इस साल के शुरुआती छह महीनों में काम किया है. साथ ही, यह भी बताएंगे कि इस तिमाही के आखिर में कौनसी आने वाली सुविधाएं रिलीज़ की जाएंगी. चलिए शुरू करते हैं!

नए एक्सटेंशन के एपीआई और सुविधाएं

इस सेक्शन में, हम एपीआई के लॉन्च होने से जुड़ी कुछ अहम जानकारी हाइलाइट करेंगे. साथ ही, एपीआई में किए गए अन्य सुधारों के बारे में थोड़ी देर के लिए बताएंगे और आगे होने वाले एपीआई रिलीज़ के बारे में जानकारी देंगे.

हाइलाइट

ऑफ़स्क्रीन दस्तावेज़

Offscreen API को Chrome 109 में लॉन्च किया गया. यह मेनिफ़ेस्ट V3 एक्सटेंशन को, इस्तेमाल के ऐसे मामलों को हैंडल करने की अनुमति देता है जिनमें डीओएम या विंडो के साथ इंटरैक्शन करने की ज़रूरत होती है. हालांकि, इन एक्सटेंशन को सर्विस वर्कर में पूरा नहीं किया जा सकता. इसके अलावा, Chrome 114 में ऑफ़स्क्रीन की दो और वजहें भी शामिल हैं: 'WORKERS' उन स्थितियों के लिए जब आपके दस्तावेज़ को किसी वर्कर को जनरेट करने की ज़रूरत होती है और 'LOCAL_STORAGE' डेटा को window.localStorage से chrome.storage API में माइग्रेट करने में मदद करने के लिए.

Chrome 115 और इसके बाद के वर्शन में, ऑफ़स्क्रीन दस्तावेज़ बनाते समय कई वजहें दी जा सकती हैं. इससे आपको एक ही दस्तावेज़ में मिलते-जुलते दो काम करने की सुविधा मिलती है.

नया साइड पैनल एपीआई 🎉

पहले, एक्सटेंशन में साइडबार बनाने का एक ही तरीका था, हर पेज पर कॉन्टेंट स्क्रिप्ट के साथ एक नया एलिमेंट इंजेक्ट करना. Chrome 114 में, Side Panel API लॉन्च किया गया. अब आप उपयोगकर्ताओं के लिए, ज़्यादा आसान तरीके से, कंपैनियन साइडबार का अनुभव तैयार कर सकते हैं. इस बारे में और पढ़ें कि साइड पैनल एपीआई की मदद से, आपको बेहतरीन उपयोगकर्ता अनुभव कैसे दिया जाता है.

शब्दकोश का ऐसा एक्सटेंशन जो चुने गए शब्द की परिभाषा दिखाता है
साइड पैनल डिक्शनरी का एक्सटेंशन. Chrome-एक्सटेंशन-सैंपल रिपॉज़िटरी में कोड देखें.

ज़्यादा मज़बूत सर्विस वर्कर

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

ज़्यादा एपीआई लॉन्च

  • Action API: Chrome 110 से, बैज के टेक्स्ट को setBadgeTextColor() और getBadgeTextColor() की मदद से पसंद के मुताबिक बनाया जा सकता है. साथ ही, isEnabled() की मदद से यह देखा जा सकता है कि मौजूदा टैब के लिए कार्रवाई चालू है या नहीं.
  • Commands API: जिस गड़बड़ी की जानकारी "commands._execute_action" के तहत मेनिफ़ेस्ट में दी गई है वह MV3 में बदलने के दौरान नहीं बने रहेगी, इसलिए Chrome 111 में इसे ठीक किया गया था.
  • डाउनलोड API: Chrome में डिफ़ॉल्ट डाउनलोड यूज़र इंटरफ़ेस (यूआई) को खोज बार (खोज क्वेरी डालने वाला बार) के सबसे नीचे दाईं ओर मौजूद शेल्फ़ से हटा दिया गया है. इस सुविधा को बंद करने के लिए, downloads.setUiOptions() का इस्तेमाल किया जा सकता है. यह setShelfEnabled() की जगह लेगा.
  • इतिहास API: chrome.history.getVisits() और chrome.history.search() भी ऐसे अन्य डिवाइस का डेटा दिखाते हैं जिन्हें स्थानीय इतिहास के डेटाबेस के साथ सिंक किया गया है. इस वजह से, रिकॉर्ड किए गए वीडियो की संख्या में बढ़ोतरी हो सकती है और वेबसाइट पर आने वाले लोगों की संख्या भी बढ़ सकती है. isLocal को Chrome 115 के VisitItem वर्शन में जोड़ा गया था. यह वर्शन इस महीने के आखिर में ठीक से काम कर सकता था. ऐसा इसलिए किया गया, ताकि उसे सिर्फ़ स्थानीय लोगों की संख्या के हिसाब से फ़िल्टर किया जा सके.
  • Identity API: पुष्टि करने वाली विंडो अब पूरी ऐप्लिकेशन विंडो में जाने के बजाय, पॉप-अप के तौर पर दिखती है. JavaScript रीडायरेक्ट की प्रोसेस के दौरान ज़्यादा कंट्रोल देने के लिए, हमने दो नए विकल्प जोड़े हैं: abortOnLoadForNonInteractive और timeoutMsForNonInteractive.
  • Storage API: Chrome 112 में, chrome.session स्टोरेज का साइज़ बढ़ाकर 10 एमबी कर दिया गया था. इसके बाद, chrome.local स्टोरेज के साइज़ को बदलकर, Chrome 114 के वर्शन से मैच किया गया.

जल्द आ रहा है...

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

  • declarativeNetRequest API: isUrlFilterCaseSensitive प्रॉपर्टी की डिफ़ॉल्ट वैल्यू बदलकर false हो जाएगी. WECG थ्रेड देखें.
  • फ़ाइल हैंडलिंग एपीआई की मदद से ChromeOS एक्सटेंशन, खास MIME टाइप और फ़ाइल एक्सटेंशन वाली फ़ाइलें खोल पाएंगे. फ़िलहाल, यह सुविधा फ़्लैग के पीछे मौजूद है.
  • Runtime API: हम extension.getViews() की जगह runtime.getContexts() रिलीज़ कर रहे हैं, जो अब काम नहीं करता. इससे एक्सटेंशन को यह पता चल जाएगा कि साइड पैनल या ऑफ़स्क्रीन दस्तावेज़ जैसा कोई एक्सटेंशन पेज खुला है या नहीं. WECG प्रस्ताव देखें.
  • सर्विस वर्कर: हम Chrome API में, बेहतर कीप-अलाइव (जीव की जानकारी मौजूद रखें) जोड़ रहे हैं. ये उपयोगकर्ता प्रॉम्प्ट दिखाते हैं: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow(), और management.uninstall().
  • साइड पैनल एपीआई: हम sidepanel.open() लॉन्च कर रहे हैं. यह उपयोगकर्ता के जेस्चर (जैसे, संदर्भ मेन्यू पर क्लिक करना) के जवाब में, एक्सटेंशन का साइड पैनल प्रोग्राम के हिसाब से खोलेगा.
  • Tabकैप्चर एपीआई: हम एक्सटेंशन सर्विस वर्कर से getMediaStreamId() को कॉल करने और किसी ऑफ़स्क्रीन दस्तावेज़ में स्ट्रीम आईडी से MediaStream पाने की सुविधा जोड़ रहे हैं. उदाहरणों के लिए ऑडियो रिकॉर्डिंग और स्क्रीन कैप्चर देखें.

Chrome बीटा में इन सूचनाओं के उपलब्ध होते ही, इनके लिए एक्सटेंशन में नया क्या है पेज पर हमारे साथ बने रहें.

दस्तावेज़ अपग्रेड करने के साथ-साथ, मेनिफ़ेस्ट V3 के अन्य दिशा-निर्देश

हम डेवलपर के सीखने के अनुभव को बेहतर बनाने के लिए भी काफ़ी मेहनत कर रहे हैं. आप सभी लोगों को बहुत-बहुत धन्यवाद कि आपने समय निकालकर chromium-group पर सवाल पूछे और developer.chrome.com पर दस्तावेज़ों से जुड़ी समस्याओं की शिकायत की.

हाइलाइट

  • नए MV3 माइग्रेशन सेक्शन में, मेनिफ़ेस्ट V2 एक्सटेंशन को मेनिफ़ेस्ट V3 में बदलने के काम के तरीके उपलब्ध हैं.
  • एक्सटेंशन सर्विस वर्कर गाइड, एक्सटेंशन सर्विस वर्कर विषयों के बारे में ज़्यादा जानकारी देती है. इनमें, उन्हें रजिस्टर और अपडेट करने का तरीका, लाइफ़साइकल कैसा दिखता है, इंपोर्ट कैसे काम करता है वगैरह शामिल हैं.
  • सर्विस वर्कर के साथ इवेंट मैनेज करना ट्यूटोरियल, एक्सटेंशन सर्विस वर्कर की बुनियादी बातों के बारे में बताता है. यह एक खोज बार (खोज क्वेरी डालने वाला बार) एक्सटेंशन बनाता है, जो आपको एक्सटेंशन एपीआई संदर्भ पेजों को तुरंत ऐक्सेस करने देता है.

इस बारे में और अपडेट

जल्द आ रहा है...

  • रिमोट तरीके से होस्ट किए गए कोड को मेनिफ़ेस्ट V3 पर माइग्रेट करने का तरीका.
  • Chrome एक्सटेंशन के लिए ऑटोमेटेड टेस्ट कैसे चलाएं.
  • डिक्लेरेटिव नेट रिक्वेस्ट के लिए बेहतर दिशा-निर्देश.
  • कॉन्टेंट स्क्रिप्ट के बारे में जानकारी देने वाले कॉन्टेंट में सुधार.

💡 क्या आपको पता है?

इस सेशन को खत्म करने से पहले, हम आपको कुछ काम के टूल और अहम जानकारी देना चाहते हैं:

  • Chrome ने WebHID के साथ काम करना शुरू कर दिया है; Chrome 115 और इसके बाद के वर्शन में, एपीआई को इस्तेमाल किया जा सकता है. हालांकि, ध्यान रखें कि इस पर अब भी काम चल रहा है.
  • Puppeteer अब --headless=new का इस्तेमाल करके हेडलेस (सिर्फ़ बैक-एंड पर काम करने की सुविधा) मोड में टेस्टिंग की सुविधा देता है . इसके बारे में ज़्यादा जानने के लिए Chrome का हेडलेस मोड अपग्रेड ब्लॉग पोस्ट पढ़ें.
  • एक्सटेंशन अपडेट टेस्टिंग टूल की मदद से, यह देखा जा सकता है कि मेनिफ़ेस्ट में अनुमतियां बदलने पर कौनसी चेतावनियां ट्रिगर होती हैं. इस तरह से, अपडेट की प्रोसेस का अनुभव किसी उपयोगकर्ता की तरह ही किया जा सकता है. यह ज़रूरी है, क्योंकि कुछ अनुमतियों के इस्तेमाल से एक्सटेंशन बंद हो सकता है. यह तब तक बंद रहता है, जब तक उपयोगकर्ता फिर से ऐक्सेस नहीं देता.

चलिए, कनेक्ट करते हैं! 🙌

इस साल, एक्सटेंशन टीम को Google I/O Connect इवेंट के दौरान, एक्सटेंशन डेवलपर से व्यक्तिगत तौर पर मुलाकात करके खुशी हुई. हम आपसे जुड़ने के लिए नए प्लैटफ़ॉर्म बनाने पर काम कर रहे हैं. जैसे, फ़ोकस ग्रुप लॉन्च करना और मीटिंग के इवेंट.

इस दौरान, कृपया chromium-groups से जुड़े सवाल पूछना जारी रखें. साथ ही, डब्ल्यूईसीजी में हिस्सा लें और दस्तावेज़ से जुड़ी किसी भी समस्या की शिकायत, developer.chrome.com के GitHub रेपो पर करें.

एक्सटेंशन डेवलपर समुदाय का हिस्सा बनने के लिए एक बार फिर से धन्यवाद!