अब तक, 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 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 में बदलने के आसान तरीके बताए गए हैं.
- एक्सटेंशन सेवा वर्कर गाइड में, एक्सटेंशन सेवा वर्कर से जुड़े विषयों के बारे में पूरी जानकारी दी गई है. इनमें यह जानकारी शामिल है कि उन्हें कैसे रजिस्टर और अपडेट किया जाता है, लाइफ़साइकल कैसा दिखता है, इंपोर्ट कैसे काम करते हैं वगैरह.
- सर्विस वर्कर की मदद से इवेंट मैनेज करना ट्यूटोरियल में, एक्सटेंशन सर्विस वर्कर की बुनियादी बातें बताई गई हैं. यह एक ऑमनीबॉक्स एक्सटेंशन बनाता है, जिससे आपको एक्सटेंशन एपीआई के रेफ़रंस पेजों को तुरंत ऐक्सेस करने में मदद मिलती है.
इस बारे में और अपडेट
- Google Analytics 4 का इस्तेमाल करना लेख में, एक्सटेंशन पॉप-अप और सेवा वर्कर इवेंट के इस्तेमाल को ट्रैक करने का तरीका बताया गया है.
- जियोलोकेशन का इस्तेमाल करना सेक्शन में, Offscreen API का इस्तेमाल करके एक्सटेंशन की भौगोलिक जगह की जानकारी पाने का तरीका बताया गया है.
- ऑडियो रिकॉर्डिंग और स्क्रीन कैप्चर से,
chrome.tabCapture
औरnavigator.mediaDevices.getDisplayMedia()
एपीआई का इस्तेमाल करके, टैब, विंडो या स्क्रीन से ऑडियो और वीडियो कैप्चर करने का तरीका पता चलता है. - हमने एक्सटेंशन डीबग करने से जुड़ी गाइड में, डीबग करने से जुड़ी नई सलाह जोड़ी हैं.
- हमने अनुमति से जुड़ी चेतावनियों के दिशा-निर्देशों को अपडेट किया है. इससे, यह समझना आसान हो जाएगा कि अनुमति से जुड़ी चेतावनियां कैसे काम करती हैं और उपयोगकर्ताओं को बेहतर अनुभव कैसे दिया जा सकता है. साथ ही, यह देखने के लिए भी आसान तरीके हैं कि उपयोगकर्ता को कौनसी चेतावनियां दिखेंगी.
- हमारी टीम और योगदान देने वाले लोगों ने मेनिफ़ेस्ट V3 एक्सटेंशन के नए सैंपल भी जोड़े हैं: एक्सटेंशन में WASM, स्क्रिप्टिंग एपीआई का डेमो, साइड पैनल एपीआई की कुकबुक, और DeclarativeNetRequest API के सैंपल. हमारे GitHub सैंपल का रेपो में, एक्सटेंशन के अन्य सैंपल देखे जा सकते हैं.
शीघ्र आ रहा है...
- रिमोट तरीके से होस्ट किए गए कोड को मेनिफ़ेस्ट V3 पर माइग्रेट करने का तरीका.
- Chrome एक्सटेंशन के लिए ऑटोमेटेड टेस्ट चलाने का तरीका.
- नेटवर्क अनुरोध को मैनेज करने के तरीकों के बारे में बेहतर दिशा-निर्देश.
- कॉन्टेंट स्क्रिप्ट के बारे में बताने वाले वीडियो में सुधार किए गए हैं.
💡 क्या आपको पता है?
हम इस सेशन को खत्म करने से पहले, आपके साथ कुछ काम के टूल और अहम जानकारी शेयर करना चाहते हैं:
- Chrome ने WebHID के साथ काम करना शुरू कर दिया है. Chrome 115 से, इस एपीआई को आज़माया जा सकता है. हालांकि, ध्यान रखें कि इस पर अब भी काम चल रहा है.
- Puppeteer अब
--headless=new
का इस्तेमाल करके, हेडलेस मोड में टेस्टिंग की सुविधा देता है . इसके बारे में ज़्यादा जानने के लिए, Chrome के हेडलेस मोड के अपग्रेड वाली ब्लॉग पोस्ट पढ़ें. - एक्सटेंशन अपडेट टेस्टिंग टूल की मदद से, यह देखा जा सकता है कि मेनिफ़ेस्ट में अनुमतियों में बदलाव होने पर कौनसी चेतावनियां ट्रिगर होती हैं. इस तरह, आपको अपडेट की प्रोसेस का अनुभव उसी तरह मिल सकता है जिस तरह किसी उपयोगकर्ता को मिलता है. यह ज़रूरी है, क्योंकि कुछ अनुमतियों की वजह से एक्सटेंशन तब तक बंद रह सकता है, जब तक उपयोगकर्ता उसे फिर से ऐक्सेस करने की अनुमति नहीं देता.
आइए, कनेक्ट करते हैं! 🙌
इस साल, एक्सटेंशन टीम को Google I/O Connect इवेंट के दौरान, एक्सटेंशन डेवलपर से व्यक्तिगत तौर पर मिलकर खुशी हुई. हम आपसे जुड़ने के लिए नए प्लैटफ़ॉर्म बनाने पर काम कर रहे हैं. जैसे, फ़ोकस ग्रुप और मीटअप इवेंट लॉन्च करना.
इस बीच, कृपया chromium-groups पर सवाल पूछना जारी रखें. साथ ही, WECG में हिस्सा लें और दस्तावेज़ से जुड़ी किसी भी समस्या की शिकायत developer.chrome.com GitHub रेपो पर करें.
एक्सटेंशन डेवलपर कम्यूनिटी का हिस्सा बने रहने के लिए धन्यवाद!