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

एमी स्टीम
एमी स्टीम

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

इस पोस्ट में, हम आपको कुछ ऐसे बदलावों के बारे में बताएंगे जिन पर 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 में, एक्सटेंशन सर्विस वर्कर के लिए, पांच मिनट के ज़्यादा से ज़्यादा लाइफ़टाइम को हटा दिया गया था. साथ ही, नेटिव ऐप्लिकेशन और एक्सटेंशन में मौजूद मैसेज को मिलने वाले मैसेज, इस्तेमाल में न होने वाले टाइमर को रीस्टार्ट कर देते हैं. एक्सटेंशन सर्विस वर्कर के लाइफ़साइकल लेख में, इसके बारे में ज़्यादा पढ़ें.

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

  • ऐक्शन एपीआई: Chrome 110 से, setBadgeTextColor() और getBadgeTextColor() का इस्तेमाल करके, बैज के टेक्स्ट को अपनी पसंद के मुताबिक बनाया जा सकता है. साथ ही, isEnabled() आपको यह देखने की अनुमति देता है कि मौजूदा टैब के लिए कार्रवाई चालू है या नहीं.
  • Commands API: Chrome 111 में वह गड़बड़ी ठीक कर दी गई थी जिसके बारे में मेनिफ़ेस्ट में बताया गया है कि एक्सटेंशन के शॉर्टकट, "commands._execute_action" के तहत, MV3 में बदलते समय नहीं बने रहेंगे.
  • डाउनलोड एपीआई: Chrome में डिफ़ॉल्ट डाउनलोड यूज़र इंटरफ़ेस (यूआई) को खोज वाली पट्टी के सबसे नीचे दाईं ओर मौजूद शेल्फ़ से हटा दिया गया है. इस सुविधा को बंद करने के लिए, downloads.setUiOptions() का इस्तेमाल किया जा सकता है. यह setShelfEnabled() की जगह ले लेता है.
  • इतिहास एपीआई: 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 माइग्रेशन से जुड़े बदलावों की सूची देखने के लिए, पहले से मालूम समस्याओं का पेज देखें. इसके अलावा, हम ये सुविधाएं भी जोड़ने वाले हैं:

  • घोषणात्मकNetRequest API: isUrlFilterCaseSensitive प्रॉपर्टी की डिफ़ॉल्ट वैल्यू बदलकर false हो जाएगी. WECG थ्रेड देखें.
  • फ़ाइल हैंडलिंग एपीआई, ChromeOS एक्सटेंशन को तय MIME टाइप और फ़ाइल एक्सटेंशन वाली फ़ाइलें खोलने की अनुमति देगा. फ़िलहाल, इस सुविधा को फ़्लैग के पीछे दिखाया गया है.
  • रनटाइम एपीआई: हम 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 में बदलने के आसान तरीके बताए गए हैं.
  • एक्सटेंशन सर्विस वर्कर की गाइड, एक्सटेंशन सर्विस वर्कर से जुड़े विषयों पर पूरी जानकारी देती है. इनमें ये शामिल हैं: कन्वर्ज़न को रजिस्टर और अपडेट कैसे किया जाता है, लाइफ़साइकल कैसा दिखता है, इंपोर्ट कैसे काम करते हैं वगैरह.
  • सर्विस वर्कर के साथ इवेंट मैनेज करना ट्यूटोरियल, एक्सटेंशन सर्विस वर्कर की बुनियादी बातें बताता है. इससे एक खोज इतिहास एक्सटेंशन बनता है, जो आपको एक्सटेंशन API संदर्भ पेजों का तुरंत ऐक्सेस देता है.

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

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

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

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

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

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

कनेक्ट करें! 🙌

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

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

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