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

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

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

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

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

हाइलाइट

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

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

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

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

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

चुने गए शब्द की परिभाषा दिखाने वाला डिक्शनरी एक्सटेंशन
साइड पैनल में मौजूद डिक्शनरी एक्सटेंशन. chrome-extensions-samples रिपॉज़िटरी में कोड देखें.

ज़्यादा बेहतर सर्विस वर्कर

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

लॉन्च किए गए अन्य एपीआई

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

शीघ्र आ रहा है...

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

  • DeclarativeNetRequest API: isUrlFilterCaseSensitive प्रॉपर्टी की डिफ़ॉल्ट वैल्यू false में बदल जाएगी. WECG थ्रेड देखें.
  • फ़ाइल मैनेज करने वाले एपीआई की मदद से, ChromeOS एक्सटेंशन, तय किए गए एमआईएम टाइप और फ़ाइल एक्सटेंशन वाली फ़ाइलें खोल पाएंगे. फ़िलहाल, यह सुविधा फ़्लैग के पीछे है.
  • रनटाइम एपीआई: हम extension.getViews() की जगह runtime.getContexts() को रिलीज़ कर रहे हैं. extension.getViews() को बंद कर दिया गया है. इससे एक्सटेंशन यह तय कर पाएंगे कि साइड पैनल या ऑफ़स्क्रीन दस्तावेज़ जैसे एक्सटेंशन पेज खुला है या नहीं. WECG का प्रस्ताव देखें.
  • सर्विस वर्कर्स: हम Chrome के उन एपीआई में 'कंटेंट को ऐक्टिव रखना' सुविधा जोड़ रहे हैं जो उपयोगकर्ता को प्रॉम्प्ट दिखाते हैं: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow(), और management.uninstall().
  • साइड पैनल एपीआई: हम sidepanel.open() लॉन्च कर रहे हैं. यह एपीआई, उपयोगकर्ता के जेस्चर के जवाब में, प्रोग्राम के हिसाब से एक्सटेंशन का साइड पैनल खोलेगा. जैसे, संदर्भ मेन्यू पर क्लिक करना.
  • TabCapture API: हम एक्सटेंशन सेवा वर्कर्स से 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 पर सवाल पूछना जारी रखें. साथ ही, WECG में हिस्सा लें और दस्तावेज़ से जुड़ी किसी भी समस्या की शिकायत developer.chrome.com GitHub रेपो पर करें.

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