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

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

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

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

Chrome के एक्सटेंशन एपीआई की मदद से, आपके ब्राउज़र के काम करने के तरीके को बदला जा सकता है.
सेटिंग में बदलाव, एक्सटेंशन के लिए Chrome की चुनी गई सेटिंग को बदलने का एक तरीका है. इसके अलावा, Google Chrome सामान्य रूप से उपलब्ध कराए जाने वाले पेज को बदलने के लिए एक्सटेंशन पेजों को ओवरराइड कर सकता है. कोई एक्सटेंशन बुकमार्क मैनेजर, इतिहास टैब या नए टैब को बदल सकता है.
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.privacy एपीआई का इस्तेमाल करें जिनसे उपयोगकर्ता की निजता पर असर पड़ सकता है. Chrome की प्रॉक्सी सेटिंग मैनेज करने के लिए, chrome.proxy API भी देखें.
प्रोग्राम के हिसाब से डाउनलोड शुरू करने, उनकी निगरानी करने, उनमें हेर-फेर करने, और डाउनलोड की खोज करने के लिए, chrome.downloads एपीआई का इस्तेमाल करें.
इन सूचियों को बनाने, व्यवस्थित करने, और किसी दूसरे तरीके से उनमें बदलाव करने के लिए, chrome.bookmarks एपीआई और chrome.readingList एपीआई का इस्तेमाल करें.

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

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

मुख्य सिद्धांत

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