अब तक, 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 लॉन्च किया गया. अब आप उपयोगकर्ताओं के लिए, ज़्यादा आसान तरीके से, कंपैनियन साइडबार का अनुभव तैयार कर सकते हैं. इस बारे में और पढ़ें कि साइड पैनल एपीआई की मदद से, आपको बेहतरीन उपयोगकर्ता अनुभव कैसे दिया जाता है.
![शब्दकोश का ऐसा एक्सटेंशन जो चुने गए शब्द की परिभाषा दिखाता है](https://developer.chrome.com/static/blog/extension-news-july-2023/image/a-dictionary-extension-s-df8e87f540be2.png?authuser=7&hl=hi)
ज़्यादा मज़बूत सर्विस वर्कर
सभी एक्सटेंशन इवेंट अब एक्सटेंशन सर्विस वर्कर के निष्क्रिय टाइमर को फिर से शुरू करते हैं. 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 में बदलने के काम के तरीके उपलब्ध हैं.
- एक्सटेंशन सर्विस वर्कर गाइड, एक्सटेंशन सर्विस वर्कर विषयों के बारे में ज़्यादा जानकारी देती है. इनमें, उन्हें रजिस्टर और अपडेट करने का तरीका, लाइफ़साइकल कैसा दिखता है, इंपोर्ट कैसे काम करता है वगैरह शामिल हैं.
- सर्विस वर्कर के साथ इवेंट मैनेज करना ट्यूटोरियल, एक्सटेंशन सर्विस वर्कर की बुनियादी बातों के बारे में बताता है. यह एक खोज बार (खोज क्वेरी डालने वाला बार) एक्सटेंशन बनाता है, जो आपको एक्सटेंशन एपीआई संदर्भ पेजों को तुरंत ऐक्सेस करने देता है.
इस बारे में और अपडेट
- Google Analytics 4 का इस्तेमाल करने से, एक्सटेंशन पॉप-अप और सर्विस वर्कर इवेंट के इस्तेमाल को ट्रैक करने का तरीका पता चलता है.
- जियोलोकेशन का इस्तेमाल करना यह दिखाता है कि ऑफ़स्क्रीन एपीआई का इस्तेमाल करके एक्सटेंशन की भौगोलिक जगह कैसे पाई जा सकती है.
- ऑडियो रिकॉर्डिंग और स्क्रीन कैप्चर,
chrome.tabCapture
औरnavigator.mediaDevices.getDisplayMedia()
एपीआई का इस्तेमाल करके टैब, विंडो या स्क्रीन से ऑडियो और वीडियो कैप्चर करने का तरीका सिखाते हैं. - हमने एक्सटेंशन डीबग करने की गाइड में, डीबग करने से जुड़ी नई सलाह जोड़ी हैं.
- हमने अनुमति की चेतावनियों से जुड़े दिशा-निर्देशों को अपडेट किया है. इससे आपको यह आसानी से समझने में मदद मिलेगी कि अनुमति से जुड़ी चेतावनियां कैसे काम करती हैं. साथ ही, हमने इस बारे में भी बताया है कि बेहतर उपयोगकर्ता अनुभव कैसे दिया जा सकता है. इसके अलावा, यह जानने के कई कारगर तरीके हैं कि लोगों को कौनसी चेतावनियां दिखेंगी.
- हमारी टीम और योगदान देने वाले लोगों ने मेनिफ़ेस्ट V3 एक्सटेंशन के नए सैंपल भी जोड़े हैं: एक्सटेंशन में WASM, Scripting API डेमो, साइड पैनल एपीआई कुकबुक, और declarativeNetRequest API के एपीआई के सैंपल. GitHub के सैंपल रेपो में, एक्सटेंशन के अन्य सैंपल देखे जा सकते हैं.
जल्द आ रहा है...
- रिमोट तरीके से होस्ट किए गए कोड को मेनिफ़ेस्ट V3 पर माइग्रेट करने का तरीका.
- Chrome एक्सटेंशन के लिए ऑटोमेटेड टेस्ट कैसे चलाएं.
- डिक्लेरेटिव नेट रिक्वेस्ट के लिए बेहतर दिशा-निर्देश.
- कॉन्टेंट स्क्रिप्ट के बारे में जानकारी देने वाले कॉन्टेंट में सुधार.
💡 क्या आपको पता है?
इस सेशन को खत्म करने से पहले, हम आपको कुछ काम के टूल और अहम जानकारी देना चाहते हैं:
- Chrome ने WebHID के साथ काम करना शुरू कर दिया है; Chrome 115 और इसके बाद के वर्शन में, एपीआई को इस्तेमाल किया जा सकता है. हालांकि, ध्यान रखें कि इस पर अब भी काम चल रहा है.
- Puppeteer अब
--headless=new
का इस्तेमाल करके हेडलेस (सिर्फ़ बैक-एंड पर काम करने की सुविधा) मोड में टेस्टिंग की सुविधा देता है . इसके बारे में ज़्यादा जानने के लिए Chrome का हेडलेस मोड अपग्रेड ब्लॉग पोस्ट पढ़ें. - एक्सटेंशन अपडेट टेस्टिंग टूल की मदद से, यह देखा जा सकता है कि मेनिफ़ेस्ट में अनुमतियां बदलने पर कौनसी चेतावनियां ट्रिगर होती हैं. इस तरह से, अपडेट की प्रोसेस का अनुभव किसी उपयोगकर्ता की तरह ही किया जा सकता है. यह ज़रूरी है, क्योंकि कुछ अनुमतियों के इस्तेमाल से एक्सटेंशन बंद हो सकता है. यह तब तक बंद रहता है, जब तक उपयोगकर्ता फिर से ऐक्सेस नहीं देता.
चलिए, कनेक्ट करते हैं! 🙌
इस साल, एक्सटेंशन टीम को Google I/O Connect इवेंट के दौरान, एक्सटेंशन डेवलपर से व्यक्तिगत तौर पर मुलाकात करके खुशी हुई. हम आपसे जुड़ने के लिए नए प्लैटफ़ॉर्म बनाने पर काम कर रहे हैं. जैसे, फ़ोकस ग्रुप लॉन्च करना और मीटिंग के इवेंट.
इस दौरान, कृपया chromium-groups से जुड़े सवाल पूछना जारी रखें. साथ ही, डब्ल्यूईसीजी में हिस्सा लें और दस्तावेज़ से जुड़ी किसी भी समस्या की शिकायत, developer.chrome.com के GitHub रेपो पर करें.
एक्सटेंशन डेवलपर समुदाय का हिस्सा बनने के लिए एक बार फिर से धन्यवाद!