एक्सटेंशन के लिए Chrome 116 में नया क्या है

Chrome 116 अब बीटा वर्शन में उपलब्ध है. इसमें, Chrome एक्सटेंशन डेवलपर के लिए कई शानदार अपडेट शामिल हैं. आइए, फटाफट इन नई सुविधाओं के बारे में जानें.

सिबेस्चन बेंज़
सबैस्टियन बेंज़

प्रोग्राम के हिसाब से साइडपैनल खोलना

Sidepanel, Chrome एक्सटेंशन के लिए सबसे ज़्यादा अनुरोध की गई सुविधाओं में से एक है. यह Chrome में वर्शन 114 से उपलब्ध है. Side Panel API लॉन्च करने के बाद, सबसे पहले हमें यह सुझाव मिला कि डेवलपर साइड पैनल को प्रोग्राम के हिसाब से खोलने का एक तरीका चाहते हैं. आपको बता दें कि chrome.sidePanel.open अब बीटा वर्शन में उपलब्ध है. इसका इस्तेमाल, उपयोगकर्ता के इंटरैक्शन की वजह से, एक्सटेंशन के साइड पैनल को प्रोग्राम के हिसाब से खोलने के लिए किया जा सकता है. उदाहरण के लिए, संदर्भ मेन्यू पर होने वाले क्लिक:

chrome.contextMenus.onClicked.addListener((info, tab) => {
  if (info.menuItemId === 'openSidePanel') {
    // This will open the panel in all the pages on the current window.
    chrome.sidePanel.open({ windowId: tab.windowId });
  }
});

सर्विस वर्कर के लिए WebSocket सहायता

मेनिफ़ेस्ट V3 पर माइग्रेट करने के लिए, कई एक्सटेंशन के लिए WebSocket सपोर्ट ज़रूरी है. Chrome 116, सर्विस वर्कर के लिए WebSocket सपोर्ट को और बेहतर बनाता है. ऐसा इसलिए होता है, क्योंकि WebSocket की सभी गतिविधियों से, 30 के दशक के सर्विस वर्कर का कुछ समय से इस्तेमाल में न होने का टाइमर रीसेट हो जाएगा. इसका मतलब है कि जब तक आपका WebSocket सक्रिय है, तब तक सर्विस वर्कर जीवित रहेगा.

इसका इस्तेमाल कीपअलाइव सिस्टम के तौर पर, यह पक्का करने के लिए किया जा सकता है कि सर्वर से मैसेज का इंतज़ार करते समय, आपका सर्विस वर्कर चालू रहे. भले ही, अगला मैसेज आने में 30 से ज़्यादा समय लगे:

function keepAlive() {
  const keepAliveIntervalId = setInterval(
    () => {
      if (webSocket) {
        webSocket.send('keepalive');
      } else {
        clearInterval(keepAliveIntervalId);
      }
    },
    // It's important to pick an interval that's shorter than 30s, to
    // avoid that the service worker becomes inactive.
    20 * 1000
  );
}

ज़्यादा जानकारी के लिए हमारी नई WebSocket गाइड और सैंपल देखें.

सेवा देने वाले कर्मचारियों को लंबे समय तक सेव रखने की सुविधा

सर्विस वर्कर के लाइफ़साइकल के बारे में बात करें, तो एक और ज़रूरी अपडेट आ गया है: यूज़र इंटरैक्शन की ज़रूरत वाले एपीआई के लिए मज़बूत कीपअलाइव (चालू रखें) जिन API को यूज़र इंटरैक्शन की ज़रूरत होती है उनमें एक्सटेंशन सर्विस वर्कर के लिए "मज़बूत" कीपअलिव (कीपअलाइव) होंगे (उदाहरण के लिए, वर्कर को इस टास्क में 5 मिनट से ज़्यादा समय लग सकता है):

बैकग्राउंड में ऑडियो और वीडियो रिकॉर्ड करना

मेनिफ़ेस्ट V2 और मेनिफ़ेस्ट V3 के बीच एक और अंतर है: tabCapture और ऑफ़स्क्रीन दस्तावेज़ों का इस्तेमाल करके, बैकग्राउंड में ऑडियो और वीडियो रिकॉर्ड किया जा सकता है. यूज़र जेस्चर का इस्तेमाल करके स्ट्रीम आईडी पाने के लिए, सर्विस वर्कर में chrome.tabCapture एपीआई का इस्तेमाल करें. इसके बाद, रिकॉर्डिंग शुरू करने के लिए इसे ऑफ़स्क्रीन दस्तावेज़ में भेजा जा सकता है.

इस सुविधा के काम करने के तरीके के बारे में जानने के लिए, हमारी अपडेट की गई tabCapture गाइड देखें. उदाहरण के लिए, टैब कैप्चर - रिकॉर्डर सैंपल देखें.

नया एपीआई: रनटाइम.getContexts()

नए runtime.getContexts() एपीआई की मदद से, अपने एक्सटेंशन से जुड़े ऐक्टिव कॉन्टेक्स्ट के बारे में जानकारी पाई जा सकती है. उदाहरण के लिए, इसका इस्तेमाल यह देखने के लिए किया जा सकता है कि कोई ऑफ़स्क्रीन दस्तावेज़ चालू है या नहीं:

const existingContexts = await chrome.runtime.getContexts({});
const offscreenDocument = existingContexts.find(
    (c) => c.contextType === 'OFFSCREEN_DOCUMENT'
  );

ऑफ़स्क्रीन की नई वजह: GEOLOCATION

geolocation को ऑफ़स्क्रीन दस्तावेज़ का इस्तेमाल करने की एक और मान्य वजह के तौर पर जोड़ा गया है. ऑफ़स्क्रीन एपीआई का इस्तेमाल करके, एक्सटेंशन की भौगोलिक जगह का पता लगाने के तरीके के बारे में ज़्यादा जानने के लिए, जियोलोकेशन का इस्तेमाल करने से जुड़ी हमारी गाइड देखें.

chrome.action.setBadgeText()

मेनिफ़ेस्ट V2 और मेनिफ़ेस्ट V3 में मौजूद अंतर को ठीक करने के लिए, action.setBadgeText को अपडेट किया गया है. किसी खाली स्ट्रिंग या null को action.setBadgeText पर पास करने पर, तय किए गए टैब के लिए बैज टेक्स्ट हट जाएगा और डिफ़ॉल्ट रूप से ग्लोबल बैज टेक्स्ट दिखेगा.

action.setBadgeText({tabId: tabId, text: ''});

खास जानकारी: मेनिफ़ेस्ट V3 की ओर एक और कदम

सर्विस वर्कर के लाइफ़टाइम सपोर्ट और अपडेट किए गए TabCapture API की मदद से, हम मेनिफ़ेस्ट V2 और V3 के बीच के फ़ीचर गैप को कम करने के अपने लक्ष्य पर लगातार काम कर रहे हैं. मौजूदा स्थिति के लिए, आम तौर पर होने वाली समस्याओं का पेज देखें.