शुरू करें सेक्शन पढ़ने के बाद, इस गाइड का इस्तेमाल एक्सटेंशन कॉम्पोनेंट, उनकी क्षमताओं, और उन्हें एक साथ इस्तेमाल करने के तरीके के बारे में जानकारी पाने के लिए करें. सबसे पहले, यह जान लें कि एक्सटेंशन क्या-क्या कर सकते हैं: इसके बाद, एक्सटेंशन के मुख्य सिद्धांत सेक्शन में जाकर, इन सुविधाओं को एक साथ इस्तेमाल करने का तरीका जानें.

यूज़र इंटरफ़ेस डिज़ाइन करना

ज़्यादातर एक्सटेंशन को काम करने के लिए किसी तरह के उपयोगकर्ता इंटरैक्शन की ज़रूरत होती है. एक्सटेंशन प्लैटफ़ॉर्म आपके एक्सटेंशन में इंटरैक्शन जोड़ने के कई तरीके उपलब्ध कराता है. इन तरीकों में, Chrome के टूलबार से ट्रिगर होने वाले पॉप-अप, साइड पैनल, संदर्भ मेन्यू वगैरह शामिल हैं.
browser.sidePanel API का इस्तेमाल करके, ब्राउज़र के साइड पैनल में कॉन्टेंट होस्ट करें. यह कॉन्टेंट, वेब पेज के मुख्य कॉन्टेंट के साथ दिखेगा.
टूलबार में किसी एक्सटेंशन के आइकॉन का डिसप्ले कंट्रोल करें.
Google Chrome के संदर्भ मेन्यू में आइटम जोड़ें.

ब्राउज़र को कंट्रोल करना

Chrome के एक्सटेंशन एपीआई की मदद से, आपके ब्राउज़र के काम करने के तरीके को बदला जा सकता है.
सेटिंग में बदलाव, एक्सटेंशन के लिए Chrome की चुनी गई सेटिंग को बदलने का एक तरीका है. इसके अलावा, Google Chrome सामान्य रूप से उपलब्ध कराए जाने वाले पेज को बदलने के लिए एक्सटेंशन पेजों को ओवरराइड कर सकता है. कोई एक्सटेंशन बुकमार्क मैनेजर, इतिहास टैब या नए टैब को बदल सकता है.
DevTools एक्सटेंशन, Chrome DevTools में सुविधाएं जोड़ते हैं. इसके लिए, वे एक्सटेंशन में जोड़े गए DevTools पेज के ज़रिए, DevTools के लिए खास तौर पर बनाए गए एक्सटेंशन एपीआई को ऐक्सेस करते हैं. Chrome के रिमोट डीबगिंग प्रोटोकॉल को शुरू करने के लिए, browser.debugger API का भी इस्तेमाल किया जा सकता है. नेटवर्क इंटरैक्शन को इंस्ट्रुमेंट करने, JavaScript को डीबग करने, DOM में बदलाव करने वगैरह के लिए, एक या उससे ज़्यादा टैब अटैच करें.
browser.notifications API की मदद से, टेंप्लेट का इस्तेमाल करके सूचनाएं बनाई जा सकती हैं. साथ ही, इन सूचनाओं को उपयोगकर्ता की सिस्टम ट्रे में दिखाया जा सकता है.
विज़िट किए गए पेजों के ब्राउज़र रिकॉर्ड के साथ इंटरैक्ट करने के लिए, browser.history एपीआई का इस्तेमाल करें. साथ ही, ब्राउज़िंग से जुड़े अन्य डेटा को मैनेज करने के लिए, browser.browsingData एपीआई का इस्तेमाल करें. सबसे ज़्यादा देखी गई साइटों को ऐक्सेस करने के लिए, browser.topSites का इस्तेमाल करें.
उपयोगकर्ता के ब्राउज़र को बनाने, उसमें बदलाव करने, और उसे व्यवस्थित करने के लिए, browser.tabs, browser.tabGroups, और browser.windows जैसे एपीआई का इस्तेमाल करें.
browser.commands API का इस्तेमाल करके, कीबोर्ड शॉर्टकट जोड़ें. इससे आपके एक्सटेंशन में कार्रवाइयां ट्रिगर होंगी. उदाहरण के लिए, ब्राउज़र ऐक्शन खोलने या एक्सटेंशन को कोई कमांड भेजने के लिए शॉर्टकट जोड़ा जा सकता है.
OAuth 2.0 ऐक्सेस टोकन पाने के लिए, browser.identity API का इस्तेमाल करें.
browser.management API, इंस्टॉल किए गए और चालू एक्सटेंशन की सूची को मैनेज करने के तरीके उपलब्ध कराता है. यह सुविधा, खास तौर पर उन एक्सटेंशन के लिए फ़ायदेमंद है जो पहले से मौजूद 'नया टैब' पेज को बदल देते हैं.
browser.omnibox एपीआई की मदद से, Google Chrome के ओम्निबॉक्स (पता बार) में कोई कीवर्ड रजिस्टर किया जा सकता है.
Chrome में ऐसी सुविधाओं के इस्तेमाल को कंट्रोल करने के लिए, browser.privacy API का इस्तेमाल करें जिनसे किसी व्यक्ति की निजता पर असर पड़ सकता है. Chrome की प्रॉक्सी सेटिंग मैनेज करने के लिए, browser.proxy एपीआई भी देखें.
प्रोग्राम के हिसाब से, अपने-आप होने वाली प्रोसेस के ज़रिए डाउनलोड शुरू करने, उन पर नज़र रखने, उनमें बदलाव करने, और उन्हें खोजने के लिए, browser.downloads API का इस्तेमाल करें.
इन सूचियों को बनाने, व्यवस्थित करने, और उनमें बदलाव करने के लिए, browser.bookmarks API और browser.readingList API का इस्तेमाल करें.

वेब को कंट्रोल करना

वेब पेजों के कॉन्टेंट और उनके काम करने के तरीके को डाइनैमिक तरीके से बदला जा सकता है. आपके पास स्क्रिप्ट इंजेक्ट करके, नेटवर्क के अनुरोधों को इंटरसेप्ट करके, और वेब पेजों से इंटरैक्ट करने के लिए वेब एपीआई का इस्तेमाल करके, वेब को कंट्रोल और उसमें बदलाव करने का विकल्प होता है.
कॉन्टेंट स्क्रिप्ट ऐसी फ़ाइलें होती हैं जो वेब पेजों से जुड़ी होती हैं. वे, ब्राउज़र के देखे गए वेब पेजों की जानकारी पढ़ने, उनमें बदलाव करने, और अपने पैरंट एक्सटेंशन को जानकारी भेजने के लिए, स्टैंडर्ड दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) का इस्तेमाल करते हैं.
"activeTab" की अनुमति से, एक्सटेंशन को कुछ समय के लिए मौजूदा चालू टैब का ऐक्सेस मिलता है. ऐसा तब होता है, जब उपयोगकर्ता किसी एक्सटेंशन को शुरू करता है. उदाहरण के लिए, एक्सटेंशन पर क्लिक करके उसे ऐक्सेस करना. टैब का ऐक्सेस उपयोगकर्ता के उस पेज पर रहने तक बना रहता है. जब उपयोगकर्ता किसी अन्य पेज पर जाता है या टैब को बंद करता है, तब उस टैब का ऐक्सेस रद्द हो जाता है.
नेटवर्क अनुरोधों को देखने, ब्लॉक करने, और उनमें बदलाव करने के लिए, browser.declarativeNetRequest, browser.webRequest, और browser.webNavigation एपीआई का इस्तेमाल करें.
वेब प्लैटफ़ॉर्म एपीआई, जैसे कि browser.tabCapture या getDisplayMedia() का इस्तेमाल करके, किसी टैब, विंडो या स्क्रीन से ऑडियो और वीडियो रिकॉर्ड करने के अलग-अलग तरीकों के बारे में जानें.
browser.contentSettings एपीआई का इस्तेमाल करके, यह कंट्रोल करें कि वेबसाइटें कुकी, JavaScript, और प्लगिन जैसी सुविधाओं का इस्तेमाल कर सकती हैं या नहीं. सामान्य तौर पर, कॉन्टेंट सेटिंग की मदद से, Chrome के व्यवहार को हर साइट के हिसाब से अलग-अलग तरीके से सेट किया जा सकता है. इसके बजाय, इसे ग्लोबल लेवल पर सेट किया जा सकता है.

सबसे ज़रूरी सिद्धांत

वेब प्लैटफ़ॉर्म और एक्सटेंशन एपीआई का इस्तेमाल करके, अलग-अलग यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट और एक्सटेंशन प्लैटफ़ॉर्म की सुविधाओं को मिलाकर, ज़्यादा जटिल सुविधाएं बनाई जा सकती हैं.
एक्सटेंशन सर्विस वर्कर (service-worker.js) एक इवेंट-आधारित स्क्रिप्ट है. यह ब्राउज़र बैकग्राउंड में चलता है. इसका इस्तेमाल अक्सर डेटा को प्रोसेस करने, एक्सटेंशन के अलग-अलग हिस्सों में टास्क को व्यवस्थित करने, और एक्सटेंशन के इवेंट मैनेजर के तौर पर किया जाता है.
अनुमतियों को समझें: वे कैसे काम करती हैं और उनकी ज़रूरत न होने पर कब उन्हें नहीं पूछना चाहिए.
Chrome एक्सटेंशन में, कॉन्टेंट और नेटवर्क के हिसाब से फ़िल्टर करने की सुविधा को कई तरीकों से लागू किया जा सकता है. एक्सटेंशन के लिए उपलब्ध कॉन्टेंट फ़िल्टर करने की सुविधाओं के बारे में जानें. साथ ही, फ़िल्टर करने के उन अलग-अलग तरीकों, तकनीकों, और एपीआई के बारे में जानें जिनका इस्तेमाल Chrome एक्सटेंशन में किया जा सकता है.
कई बार कॉन्टेंट स्क्रिप्ट या अन्य एक्सटेंशन पेजों को एक्सटेंशन सर्विस वर्कर से जानकारी भेजने या पाने की ज़रूरत होती है. ऐसे मामलों में, एक तरफ़ से भेजा जाने वाला कोई क्रिएटर, दूसरे व्यक्ति से भेजे गए मैसेज सुन सकता है और उसी चैनल पर जवाब दे सकता है.
स्थानीय ऐप्लिकेशन के साथ मैसेज का लेन-देन करने के लिए अपने एक्सटेंशन चालू करें.
मेनिफ़ेस्ट V3 एक्सटेंशन में, उन सभी कोड को बंडल करना होगा जिनका इस्तेमाल वे एक्सटेंशन के अंदर ही कर रहे हैं. ऐसा करने के लिए अलग-अलग रणनीतियां हैं.
Chrome एक्सटेंशन में एक खास Storage API होता है, जो सभी एक्सटेंशन कॉम्पोनेंट के लिए उपलब्ध होता है. इसमें खास इस्तेमाल के लिए चार अलग-अलग स्टोरेज क्षेत्र दिए गए हैं. साथ ही, एक इवेंट लिसनर है, जो डेटा अपडेट होने पर इसे ट्रैक करता है.
सर्विस वर्कर के पास डीओएम ऐक्सेस नहीं है. ऑफ़स्क्रीन एपीआई, एक्सटेंशन को छिपे हुए दस्तावेज़ में DOM एपीआई का इस्तेमाल करने की अनुमति देता है. इससे उपयोगकर्ता के अनुभव में कोई रुकावट नहीं आती. इसके लिए, नई विंडो या टैब खोलने की ज़रूरत नहीं पड़ती.
क्रॉस-ऑरिजिन आइसोलेशन की मदद से, वेब पेज में SharedArrayBuffer जैसी बेहतरीन सुविधाएं इस्तेमाल की जा सकती हैं. कोई एक्सटेंशन, "cross_origin_embedder_policy" और "cross_origin_opener_policy" मेनिफ़ेस्ट कुंजियों के लिए सही वैल्यू तय करके, क्रॉस-ऑरिजिन आइसोलेशन के लिए ऑप्ट इन कर सकता है.
जानें कि Chrome, एक्सटेंशन को अपडेट करने के फ़्लो को कैसे अपडेट करता है. साथ ही, एक्सटेंशन के अपडेट के डिस्ट्रिब्यूशन को मॉनिटर करने का तरीका जानें.