पब्लिश किया गया: 19 नवंबर, 2024
Google I/O 2024 में, हमने एक्सटेंशन मेन्यू में होने वाले बदलावों के लिए कुछ शुरुआती डिज़ाइन शेयर किए थे. इनसे उपयोगकर्ताओं को उन साइटों पर ज़्यादा कंट्रोल मिलता है जिन्हें एक्सटेंशन ऐक्सेस कर सकते हैं. हम जल्द ही इन बदलावों की टेस्टिंग शुरू करेंगे. इसके लिए, हम Canary में कुछ उपयोगकर्ताओं के साथ शुरुआत करेंगे. हमें उम्मीद है कि आने वाले समय में, हम इन बदलावों को ज़्यादा से ज़्यादा लोगों के लिए उपलब्ध करा पाएंगे.
जब हमने डेवलपर से इस बदलाव के बारे में बात की थी, तब हमें अक्सर यह बताया गया था कि एक्सटेंशन के इंस्टॉल होने के समय, होस्ट की अनुमतियों का अनुरोध करने के तरीके में बदलाव करने से क्या असर पड़ेगा. नए मेन्यू से, डिफ़ॉल्ट तौर पर काम करने के तरीके पर कोई असर नहीं पड़ता. इंस्टॉल के समय, एक्सटेंशन को उन सभी होस्ट का ऐक्सेस मिलता रहेगा जिनके लिए अनुरोध किया गया है. इन बदलावों का मकसद, उपयोगकर्ताओं को पहले से उपलब्ध कंट्रोल आसानी से खोजने में मदद करना है.
इस पोस्ट में, इस बारे में खास जानकारी दी गई है कि आपको क्या उम्मीद करनी चाहिए. साथ ही, यह भी बताया गया है कि उपयोगकर्ता ने किसी पेज का ऐक्सेस रोका है, तो ऐसे मामलों को हैंडल करने के लिए, नए एपीआई की मदद से अपने एक्सटेंशन को कैसे तैयार किया जा सकता है.
क्या बदल रहा है?
उपयोगकर्ताओं को ज़्यादा कंट्रोल देने के लिए, हम एक्सटेंशन का एक नया मेन्यू पेश करेंगे. इंस्टॉल के समय, एक्सटेंशन को अनुरोध किए गए सभी होस्ट का ऐक्सेस दिया जाएगा. हालांकि, अब उपयोगकर्ताओं के पास हर एक्सटेंशन के ऐक्सेस को कंट्रोल करने का आसान तरीका होगा.
नए मेन्यू (इमेज में मौजूद मौजूदा डिज़ाइन, जो बदल सकता है) में साफ़ तौर पर दिखता है कि किसी पेज पर कौनसे एक्सटेंशन चल सकते हैं. साथ ही, उपयोगकर्ताओं को चुने गए एक्सटेंशन का ऐक्सेस बदलने की सुविधा भी मिलती है. उपयोगकर्ता, किसी खास साइट पर सभी एक्सटेंशन के चलने पर भी रोक लगा सकता है. जैसा कि बताया गया है, उपलब्ध सेटिंग या डिफ़ॉल्ट सेटिंग में कोई बदलाव नहीं किया जा रहा है. हमारा मकसद, उपयोगकर्ताओं को पहले से मौजूद सुविधाओं को आसानी से खोजने में मदद करना है.
साइट का ऐक्सेस पाने का अनुरोध जोड़ना
इन बदलावों को पूरा करने के लिए, हमने एक नया एपीआई डिज़ाइन किया है. इसमें WebExtensions कम्यूनिटी ग्रुप के अन्य ब्राउज़र और डेवलपर के अहम सुझावों का इस्तेमाल किया गया है.
अगर किसी उपयोगकर्ता ने किसी पेज का ऐक्सेस रोका है, तो एक्सटेंशन अब नए permissions.addSiteAccessRequest
एपीआई का इस्तेमाल करके, ऐक्सेस का अनुरोध कर सकते हैं. जब कोई एक्सटेंशन ऐसा करता है, तो उपयोगकर्ता को टूलबार में एक्सटेंशन के पज़ल के टुकड़े के बगल में "अनुमति दें" मैसेज दिखेगा. हम इस डिज़ाइन पर काम कर रहे हैं:
जब कोई उपयोगकर्ता एक्सटेंशन मेन्यू में "अनुमति दें" पर क्लिक करता है, तो एक्सटेंशन को होस्ट का ऐक्सेस हमेशा के लिए मिल जाता है. उपयोगकर्ता, आने वाले समय में एक्सटेंशन मेन्यू या chrome://extensions पेज पर जाकर, इसे फिर से रोक सकता है. टूलबार में "एक व्यक्ति को अनुमति दें?" पर क्लिक करके, तुरंत ऐक्सेस देने का तेज़ तरीका मिलता है.
एक्सटेंशन, tabId
के साथ permissions.addSiteAccessRequest
को कॉल करके, उस टैब के लिए अनुमति का अनुरोध दिखा सकते हैं. सुविधा की पहचान करने की सुविधा का इस्तेमाल करके, अपने एक्सटेंशन में आज ही इसका इस्तेमाल शुरू किया जा सकता है. नए मेन्यू के बिना, एपीआई उपयोगकर्ताओं के लिए कुछ नहीं करेगा. हालांकि, इसे अपनाने से नए मेन्यू का इस्तेमाल करने वाले उपयोगकर्ताओं को फ़ायदा होगा, क्योंकि इसे धीरे-धीरे रोल आउट किया जा रहा है.
chrome.tabs.onUpdated.addListener(async (tabId, changes) => {
if (typeof changes.url !== 'string') return;
const url = new URL(changes.url);
// If we are on the /checkout page of example.com.
if (url.origin === 'https://example.com' && url.pathname === '/checkout') {
const hasPermission = await chrome.permissions.contains({
origins: ['https://example.com/*']
});
// We already have host permissions.
if (hasPermission) {
return;
}
// Add a site access request if the API is available.
if (chrome.permissions.addSiteAccessRequest) {
chrome.permissions.addSiteAccessRequest({ tabId });
}
}
});
इस उदाहरण में, हम सिर्फ़ तब अनुरोध जोड़ते हैं, जब उपयोगकर्ता /checkout
पेज पर हो. हमारे chrome-extensions-samples रिपॉज़िटरी में पूरा कोड देखा जा सकता है.
एक्सटेंशन को यह ध्यान रखना चाहिए कि उपयोगकर्ताओं से ऐक्सेस कब मांगा जाए. उपयोगकर्ता, ज़्यादा अनुरोधों को अनदेखा कर सकते हैं. साथ ही, Chrome ज़्यादा अनुरोधों को कम कर सकता है. उपयोगकर्ता के पास यह भी विकल्प होता है कि वह किसी एक्सटेंशन को अनुरोध दिखाने की सुविधा बंद कर दे. इसलिए, आपको सिर्फ़ खास मामलों में ऐक्सेस का अनुरोध करना चाहिए. ऐसा तब करें, जब आपको पूरा भरोसा हो कि उपयोगकर्ता आपके एक्सटेंशन का इस्तेमाल करना चाहेगा.
अनुरोध किसी खास टैब से जुड़े होते हैं और जब कोई उपयोगकर्ता किसी दूसरे ऑरिजिन पर जाता है, तो वे अपने-आप हट जाते हैं. किसी अनुरोध को साफ़ तौर पर हटाने के लिए, उससे जुड़ा removeSiteAccessRequest
तरीका उपलब्ध होता है. जैसे, अगर कोई अनुरोध किसी खास पाथ से जुड़ा है.
यह एपीआई, एक्सटेंशन के नए मेन्यू से जुड़ा है. इसलिए, अगर नया मेन्यू चालू नहीं है, तो कॉल को अनदेखा कर दिया जाएगा. हालांकि, हमारा सुझाव है कि आप आज ही एपीआई को आज़माएं और अपने एक्सटेंशन में इसका इस्तेमाल करें. धीरे-धीरे ज़्यादा उपयोगकर्ताओं को नए मेन्यू में बदलाव दिखेंगे. इससे, उन्हें बेहतर उपयोगकर्ता अनुभव मिलेगा.
वैकल्पिक अनुमतियों के साथ काम करने के बारे में ज़्यादा जानने के लिए, अनुमतियों का दस्तावेज़ देखें.
इसे आज़माएं
यह एपीआई, Chrome 133.0.6838.0 और इसके बाद के वर्शन में डिफ़ॉल्ट रूप से चालू होता है. फ़िलहाल, यह Chrome Canary में उपलब्ध है. नया मेन्यू चालू करने के लिए, chrome://flags पर जाएं और "एक्सटेंशन मेन्यू का ऐक्सेस कंट्रोल" फ़्लैग को चालू करें.
आपको याद दिला दें कि इस सुविधा पर अब भी काम चल रहा है. इसलिए, इसमें बदलाव और सुधार किए जा सकते हैं. हमारा सुझाव है कि सबसे अप-टू-डेट अनुभव देखने के लिए, Chrome Canary में टेस्ट करें.
नए डिज़ाइन के बारे में सुझाव/राय देने या शिकायत करने के लिए, chromium-extensions मेलिंग सूची में शामिल हों. हम नए मेन्यू पर काम करते समय, इन सुझावों/रायों/शिकायतों को ध्यान में रखेंगे.