Develop
शुरू करें सेक्शन को पढ़ने के बाद, इस गाइड का इस्तेमाल एक्सटेंशन कॉम्पोनेंट की आउटलाइन के तौर पर करें. साथ ही, मेनिफ़ेस्ट V3 में उनकी क्षमताओं और उन्हें एक साथ इस्तेमाल करने के तरीके के बारे में भी बताएं. सबसे पहले यह जानें कि कौन-कौनसे एक्सटेंशन काम कर सकते हैं: इसके बाद, एक्सटेंशन के मुख्य कॉन्सेप्ट वाले सेक्शन का इस्तेमाल करके, इन सुविधाओं को एक साथ जोड़ने का तरीका जानें.
यूज़र इंटरफ़ेस डिज़ाइन करना
ज़्यादातर एक्सटेंशन को काम करने के लिए किसी तरह के उपयोगकर्ता इंटरैक्शन की ज़रूरत होती है. एक्सटेंशन प्लैटफ़ॉर्म आपके एक्सटेंशन में इंटरैक्शन जोड़ने के कई तरीके उपलब्ध कराता है. इन तरीकों में, Chrome के टूलबार से ट्रिगर होने वाले पॉप-अप, साइड पैनल, संदर्भ मेन्यू वगैरह शामिल हैं.
ब्राउज़र को कंट्रोल करना
Chrome के एक्सटेंशन एपीआई की मदद से, आपके ब्राउज़र के काम करने के तरीके को बदला जा सकता है.
Chrome के पेज और सेटिंग बदलें
सेटिंग में बदलाव, एक्सटेंशन के लिए Chrome की चुनी गई सेटिंग को बदलने का एक तरीका है. इसके अलावा, Google Chrome सामान्य रूप से उपलब्ध कराए जाने वाले पेज को बदलने के लिए एक्सटेंशन पेजों को ओवरराइड कर सकता है. कोई एक्सटेंशन बुकमार्क मैनेजर, इतिहास टैब या नए टैब को बदल सकता है.
DevTools को बड़ा किया जा रहा है
DevTools एक्सटेंशन Chrome DevTools में फ़ंक्शन जोड़ते हैं. ऐसा करने के लिए, एक्सटेंशन में जोड़े गए DevTools पेज के ज़रिए DevTools के लिए खास तौर पर बने एक्सटेंशन एपीआई को ऐक्सेस किया जाता है. Chrome के रिमोट डीबगिंग प्रोटोकॉल को शुरू करने के लिए,
chrome.debugger
एपीआई का भी इस्तेमाल किया जा सकता है. इंस्ट्रुमेंट नेटवर्क इंटरैक्शन, JavaScript को डीबग करने, डीओएम में बदलाव करने वगैरह के लिए एक या उससे ज़्यादा टैब अटैच करें.
सूचनाएं दिखाएं
chrome.notifications
एपीआई की मदद से, टेंप्लेट का इस्तेमाल करके सूचनाएं बनाई जा सकती हैं और उपयोगकर्ता के सिस्टम ट्रे में इन सूचनाओं को दिखाया जा सकता है.
इतिहास मैनेज करें
ब्राउज़र के देखे गए पेजों के रिकॉर्ड से इंटरैक्ट करने के लिए
chrome.history
एपीआई का इस्तेमाल करें. साथ ही, अन्य ब्राउज़िंग डेटा को मैनेज करने के लिए, chrome.browsingData
एपीआई का इस्तेमाल करें. सबसे ज़्यादा देखी गई साइटों को ऐक्सेस करने के लिए, chrome.topSites
का इस्तेमाल करें.
टैब और विंडो कंट्रोल करना
उपयोगकर्ता का ब्राउज़र बनाने, उसमें बदलाव करने, और उसे व्यवस्थित करने के लिए,
chrome.tabs
, chrome.tabGroups
, और chrome.windows
जैसे एपीआई इस्तेमाल करें.
कीबोर्ड शॉर्टकट जोड़ें
अपने एक्सटेंशन में कार्रवाइयों को ट्रिगर करने वाले कीबोर्ड शॉर्टकट जोड़ने के लिए,
chrome.commands
एपीआई का इस्तेमाल करें. उदाहरण के लिए, ब्राउज़र पर की जाने वाली कार्रवाई को खोलने के लिए, शॉर्टकट जोड़ा जा सकता है या एक्सटेंशन को निर्देश भेजा जा सकता है.
उपयोगकर्ताओं की पुष्टि करें
OAuth 2.0 ऐक्सेस टोकन पाने के लिए,
chrome.identity
एपीआई का इस्तेमाल करें.
एक्सटेंशन मैनेज करें
chrome.management
एपीआई, इंस्टॉल किए गए और चल रहे एक्सटेंशन की सूची को मैनेज करने के तरीके उपलब्ध कराता है. यह खास तौर पर उन एक्सटेंशन के लिए फ़ायदेमंद है जो पहले से मौजूद 'नया टैब' पेज को ओवरराइड करते हैं.
सुझाव दें
chrome.omnibox
एपीआई की मदद से, Google Chrome के खोज बार (पता बार) की मदद से किसी कीवर्ड को रजिस्टर किया जा सकता है.
Chrome की सेटिंग अपडेट करें
Chrome में उन सुविधाओं के इस्तेमाल को कंट्रोल करने के लिए
chrome.privacy
एपीआई का इस्तेमाल करें जिनसे उपयोगकर्ता की निजता पर असर पड़ सकता है. Chrome की प्रॉक्सी सेटिंग मैनेज करने के लिए, chrome.proxy
API भी देखें.
डाउनलोड प्रबंधित करना
प्रोग्राम के हिसाब से डाउनलोड शुरू करने, उनकी निगरानी करने, उनमें हेर-फेर करने, और डाउनलोड की खोज करने के लिए,
chrome.downloads
एपीआई का इस्तेमाल करें.
बुकमार्क और रीडिंग लिस्ट का इस्तेमाल करना
इन सूचियों को बनाने, व्यवस्थित करने, और किसी दूसरे तरीके से उनमें बदलाव करने के लिए,
chrome.bookmarks
एपीआई और chrome.readingList
एपीआई का इस्तेमाल करें.
वेब को कंट्रोल करना
वेब पेजों के कॉन्टेंट और उनके काम करने के तरीके को डाइनैमिक तरीके से बदला जा सकता है. आपके पास स्क्रिप्ट इंजेक्ट करके, नेटवर्क के अनुरोधों को इंटरसेप्ट करके, और वेब पेजों से इंटरैक्ट करने के लिए वेब एपीआई का इस्तेमाल करके, वेब को कंट्रोल और उसमें बदलाव करने का विकल्प होता है.
JavaScript और CSS इंजेक्ट करें
कॉन्टेंट स्क्रिप्ट ऐसी फ़ाइलें होती हैं जो वेब पेजों से जुड़ी होती हैं. वे, ब्राउज़र के देखे गए वेब पेजों की जानकारी पढ़ने, उनमें बदलाव करने, और अपने पैरंट एक्सटेंशन को जानकारी भेजने के लिए, स्टैंडर्ड दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) का इस्तेमाल करते हैं.
इस्तेमाल किए जा रहे टैब को ऐक्सेस करना
"activeTab"
की अनुमति से, एक्सटेंशन को कुछ समय के लिए मौजूदा चालू टैब का ऐक्सेस मिलता है. ऐसा तब होता है, जब उपयोगकर्ता किसी एक्सटेंशन को शुरू करता है. उदाहरण के लिए, एक्सटेंशन पर क्लिक करके उसे ऐक्सेस करना. टैब का ऐक्सेस उपयोगकर्ता के उस पेज पर रहने तक बना रहता है. जब उपयोगकर्ता किसी अन्य पेज पर जाता है या टैब को बंद करता है, तब उस टैब का ऐक्सेस रद्द हो जाता है.
वेब अनुरोधों को कंट्रोल करना
नेटवर्क के अनुरोधों पर नज़र रखने, उन्हें ब्लॉक करने, और उनमें बदलाव करने के लिए
chrome.declarativeNetRequest
, chrome.webRequest
, और chrome.webNavigation
एपीआई का इस्तेमाल करें.
ऑडियो रिकॉर्डिंग और स्क्रीन कैप्चर
chrome.tabCapture
या getDisplayMedia()
जैसे वेब प्लैटफ़ॉर्म एपीआई का इस्तेमाल करके, किसी टैब, विंडो या स्क्रीन से ऑडियो और वीडियो रिकॉर्ड करने के अलग-अलग तरीकों के बारे में जानें.
वेबसाइट की सेटिंग बदलें
chrome.contentSettings
एपीआई का इस्तेमाल करके, यह कंट्रोल करें कि वेबसाइटें, कुकी, JavaScript, और प्लगिन जैसी सुविधाओं का इस्तेमाल कर सकती हैं या नहीं. सरल शब्दों में कहें, तो कॉन्टेंट सेटिंग से आपको दुनिया भर के बजाय, हर साइट के आधार पर Chrome के काम करने के तरीके को पसंद के मुताबिक बनाने की सुविधा मिलती है.
मुख्य सिद्धांत
वेब प्लैटफ़ॉर्म और एक्सटेंशन एपीआई का इस्तेमाल करके, अलग-अलग यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट और एक्सटेंशन प्लैटफ़ॉर्म की सुविधाओं को मिलाकर, ज़्यादा जटिल सुविधाएं बनाई जा सकती हैं.
सर्विस वर्कर
एक्सटेंशन सर्विस वर्कर (service-worker.js) एक इवेंट-आधारित स्क्रिप्ट है. यह ब्राउज़र बैकग्राउंड में चलता है. इसका इस्तेमाल अक्सर डेटा को प्रोसेस करने, एक्सटेंशन के अलग-अलग हिस्सों में टास्क को व्यवस्थित करने, और एक्सटेंशन के इवेंट मैनेजर के तौर पर किया जाता है.
अनुमतियां
अनुमतियों को समझें: वे कैसे काम करती हैं और उनकी ज़रूरत न होने पर कब उन्हें नहीं पूछना चाहिए.
सामग्री फ़िल्टरिंग
Chrome एक्सटेंशन में, कॉन्टेंट और नेटवर्क के हिसाब से फ़िल्टर करने की सुविधा को कई तरीकों से लागू किया जा सकता है. एक्सटेंशन के लिए उपलब्ध कॉन्टेंट फ़िल्टर करने की सुविधाओं के बारे में जानें. साथ ही, फ़िल्टर करने के उन अलग-अलग तरीकों, तकनीकों, और एपीआई के बारे में जानें जिनका इस्तेमाल Chrome एक्सटेंशन में किया जा सकता है.
मैसेज सेवा
कई बार कॉन्टेंट स्क्रिप्ट या अन्य एक्सटेंशन पेजों को एक्सटेंशन सर्विस वर्कर से जानकारी भेजने या पाने की ज़रूरत होती है. ऐसे मामलों में, एक तरफ़ से भेजा जाने वाला कोई क्रिएटर, दूसरे व्यक्ति से भेजे गए मैसेज सुन सकता है और उसी चैनल पर जवाब दे सकता है.
नेटिव मैसेज की सुविधा
स्थानीय ऐप्लिकेशन के साथ मैसेज का लेन-देन करने के लिए अपने एक्सटेंशन चालू करें.
रिमोट तरीके से होस्ट किए गए कोड का इस्तेमाल करने से बचें
मेनिफ़ेस्ट V3 एक्सटेंशन में, उन सभी कोड को बंडल करना होगा जिनका इस्तेमाल वे एक्सटेंशन के अंदर ही कर रहे हैं. ऐसा करने के लिए अलग-अलग रणनीतियां हैं.
स्टोरेज
Chrome एक्सटेंशन में एक खास Storage API होता है, जो सभी एक्सटेंशन कॉम्पोनेंट के लिए उपलब्ध होता है. इसमें खास इस्तेमाल के लिए चार अलग-अलग स्टोरेज क्षेत्र दिए गए हैं. साथ ही, एक इवेंट लिसनर है, जो डेटा अपडेट होने पर इसे ट्रैक करता है.
ऑफ़स्क्रीन दस्तावेज़
सर्विस वर्कर के पास डीओएम ऐक्सेस नहीं है. ऑफ़स्क्रीन एपीआई, एक्सटेंशन को छिपे हुए दस्तावेज़ में DOM एपीआई का इस्तेमाल करने की अनुमति देता है. इससे उपयोगकर्ता के अनुभव में कोई रुकावट नहीं आती. इसके लिए, नई विंडो या टैब खोलने की ज़रूरत नहीं पड़ती.
क्रॉस ऑरिजिन आइसोलेशन
क्रॉस-ऑरिजिन आइसोलेशन की मदद से, वेब पेज में
SharedArrayBuffer
जैसी बेहतरीन सुविधाएं इस्तेमाल की जा सकती हैं. कोई एक्सटेंशन, "cross_origin_embedder_policy"
और "cross_origin_opener_policy"
मेनिफ़ेस्ट कुंजियों के लिए सही वैल्यू तय करके, क्रॉस-ऑरिजिन आइसोलेशन के लिए ऑप्ट इन कर सकता है.