इस गाइड में, एक्सटेंशन अपडेट करने के पूरे फ़्लो के बारे में बताया गया है. इसमें अपडेट करने की स्टैंडर्ड प्रोसेस, मैन्युअल तरीके से किए जाने वाले बदलाव, डेवलपर एपीआई, और एंटरप्राइज़ नीतियों के अहम असर के बारे में बताया गया है.
अपडेट करने की स्टैंडर्ड साइकल
Chrome को इस तरह से डिज़ाइन किया गया है कि इंस्टॉल किए गए एक्सटेंशन, अपने-आप नए वर्शन में अपडेट हो जाते हैं. इससे यह पक्का होता है कि उपयोगकर्ताओं को नई सुविधाओं और सुरक्षा से जुड़े सुधारों का ऐक्सेस मिले. डिफ़ॉल्ट रूप से, Chrome स्टार्टअप के दौरान और हर कुछ घंटों में एक्सटेंशन के अपडेट की जांच करता है.
अपडेट करने की प्रोसेस का एक अहम पहलू यह है कि एक्सटेंशन को सिर्फ़ तब अपडेट किया जाता है, जब उसे निष्क्रिय माना जाता है. किसी एक्सटेंशन को निष्क्रिय तब माना जाता है, जब उसके कॉम्पोनेंट का इस्तेमाल न किया जा रहा हो. मेनिफ़ेस्ट V3 के हिसाब से, इसका मुख्य मतलब यह है कि एक्सटेंशन का सर्विस वर्कर काम नहीं कर रहा है. सर्विस वर्कर को इवेंट-ड्रिवन के तौर पर डिज़ाइन किया गया है. साथ ही, कुछ समय तक कोई गतिविधि न होने पर यह बंद हो जाता है. इसके अलावा, खुले हुए एक्सटेंशन पेज (जैसे कि साइड पैनल, पॉप-अप या विकल्प वाला पेज) की वजह से, एक्सटेंशन को निष्क्रिय नहीं माना जाता. चालू कॉन्टेंट स्क्रिप्ट से इस बात पर कोई असर नहीं पड़ता कि एक्सटेंशन को निष्क्रिय माना जाता है या नहीं.
इस वजह से, अक्सर ऐक्टिव रहने वाले एक्सटेंशन के अपडेट में देरी हो सकती है. अगर किसी एक्सटेंशन का सर्विस वर्कर, इवेंट की वजह से लगातार ट्रिगर होता रहता है, तो हो सकता है कि वह कभी भी निष्क्रिय स्थिति में न पहुंचे. साथ ही, ब्राउज़र को फिर से शुरू करने तक अपडेट को रोक दिया जाएगा.
एक्सटेंशन के अपडेट के डिस्ट्रिब्यूशन को मॉनिटर करना
आपके कितने उपयोगकर्ता, एक्सटेंशन के नए वर्शन का इस्तेमाल कर रहे हैं, यह जानने के लिए Chrome Web Store के आंकड़ों वाले डैशबोर्ड का इस्तेमाल करें. Chrome WebStore डेवलपर डैशबोर्ड पर जाएं और पब्लिश किया गया कोई एक्सटेंशन चुनें. साइड नेविगेशन बार में, Analytics -> उपयोगकर्ता पर जाएं. इसके बाद, नीचे की ओर स्क्रोल करके सामान के हिसाब से रोज़ाना के उपयोगकर्ताओं का चार्ट पर जाएं. यहां देखा जा सकता है कि कितने उपयोगकर्ता पहले से ही आपके ऐप्लिकेशन का नया वर्शन इस्तेमाल कर रहे हैं.
एक्सटेंशन को मैन्युअल तरीके से अपडेट करना
अगर उपयोगकर्ताओं को नए अपडेट तुरंत चाहिए, तो Chrome में मैन्युअल तरीके से अपडेट करने की सुविधा उपलब्ध है. अपडेट की टेस्टिंग के दौरान भी यह टूल काम आता है.
कोई भी उपयोगकर्ता, इंस्टॉल किए गए सभी एक्सटेंशन को अपडेट करने के लिए, यह तरीका अपना सकता है:
- chrome://extensions पर जाएं.
- सबसे ऊपर दाएं कोने में मौजूद टॉगल का इस्तेमाल करके, डेवलपर मोड चालू करें.
- दिखने वाले अपडेट करें बटन पर क्लिक करें.
इस कार्रवाई से, Chrome को Chrome Web Store से इंस्टॉल किए गए सभी एक्सटेंशन के नए वर्शन तुरंत फ़ेच करने का अनुरोध किया जाता है.
किसी एक्सटेंशन से मिले अपडेट देखना
chrome.runtime API, एक्सटेंशन को अपडेट करने के तरीके के साथ इंटरैक्ट करने के लिए टूल उपलब्ध कराता है.
मांग पर अपडेट देखना
chrome.runtime.requestUpdateCheck() फ़ंक्शन की मदद से, एक्सटेंशन प्रोग्राम के हिसाब से अपडेट की जांच शुरू कर सकता है. यह खास तौर पर उन एक्सटेंशन के लिए मददगार है जो बैकएंड सेवा पर निर्भर होते हैं. साथ ही, उन्हें यह पक्का करना होता है कि वे बैकएंड सेवा के साथ काम करने वाले सबसे नए वर्शन का इस्तेमाल कर रहे हैं.
इस फ़ंक्शन को कॉल करने पर, Chrome, Chrome Web Store से नए वर्शन के बारे में क्वेरी करता है. अगर नया वर्शन उपलब्ध होता है, तो उसे डाउनलोड कर लेता है. फ़ंक्शन के कॉलबैक को एक स्टेटस मिलता है. इससे जांच के नतीजे के बारे में पता चलता है.
उपलब्ध अपडेट के बारे में सुनना
chrome.runtime.onUpdateAvailable इवेंट तब ट्रिगर होता है, जब कोई अपडेट डाउनलोड हो जाता है और इंस्टॉल होने के लिए तैयार होता है. इस इवेंट की जानकारी में, नए वर्शन का नंबर दिया जाता है. इस इवेंट को सुनने पर, एक्सटेंशन यह पता लगा सकता है कि कोई अपडेट उपलब्ध है. साथ ही, ज़रूरत पड़ने पर chrome.runtime.reload() का इस्तेमाल करके, एक्सटेंशन को निष्क्रिय किया जा सकता है या उसे फिर से लोड किया जा सकता है.
यहां दिए गए कोड में, लागू करने का बुनियादी पैटर्न दिखाया गया है:
कुछ मामलों में, ब्राउज़र को एक्सटेंशन के अपडेट की जांच करने के लिए मजबूर किया जा सकता है. इसके लिए, chrome.runtime.requestUpdateCheck() का इस्तेमाल करें:
यह ध्यान रखना ज़रूरी है कि ब्राउज़र, requestUpdateCheck() को बार-बार कॉल करने पर रोक लगा देगा. इस फ़ंक्शन का इस्तेमाल सिर्फ़ तब करें, जब आपको पता हो कि कोई अपडेट उपलब्ध है. उदाहरण के लिए, जब अपडेट किए गए बैकएंड के लिए एक्सटेंशन के नए वर्शन की ज़रूरत होती है.
उद्यम नीति के ज़रिए अपडेट को कंट्रोल करना
मैनेज किए गए एंटरप्राइज़ एनवायरमेंट में, एक्सटेंशन को अपडेट करने का स्टैंडर्ड तरीका, सिस्टम एडमिन की ओर से सेट की गई नीतियों के मुताबिक होता है. ये नीतियां, सुरक्षा और स्थिरता को लागू करने के लिए, डिफ़ॉल्ट व्यवहार को बदल सकती हैं.
अनइंस्टॉल न किया जा सकने वाला ऐप्लिकेशन
ExtensionInstallForcelist नीति की मदद से एडमिन, उपयोगकर्ताओं के लिए कुछ एक्सटेंशन अपने-आप इंस्टॉल कर सकते हैं. उपयोगकर्ता, इस नीति के तहत इंस्टॉल किए गए एक्सटेंशन को बंद या अनइंस्टॉल नहीं कर सकते.
एक्सटेंशन के वर्शन को पिन करना
हालांकि, एंटरप्राइज़ को अक्सर इस्तेमाल किए जा रहे एक्सटेंशन के वर्शन को कंट्रोल करने की ज़रूरत होती है, ताकि यह पक्का किया जा सके कि वह अन्य सॉफ़्टवेयर के साथ काम करता है. इसके लिए, एडमिन किसी एक्सटेंशन को किसी खास वर्शन पर "पिन" कर सकते हैं. यह काम Google Admin console से किया जाता है. यहां एडमिन, संगठन की किसी इकाई के लिए ज़रूरी वर्शन चुन सकता है. किसी एक्सटेंशन को पिन करने पर, Chrome उसे बताए गए वर्शन से आगे अपडेट नहीं करेगा.
अपडेट के सोर्स को बदलना
सुरक्षा या पसंद के मुताबिक बनाने की वजहों से, कंपनियां एक्सटेंशन के अपने फ़ोर्क किए गए वर्शन होस्ट कर सकती हैं. o इससे Chrome, एक्सटेंशन और उसके अपडेट को Chrome Web Store के बजाय, तय किए गए यूआरएल से फ़ेच करता है.
Chrome का कम से कम वर्शन सेट करना
अपने एक्सटेंशन की मेनिफ़ेस्ट फ़ाइल में, minimum_chrome_version तय किया जा सकता है. इससे यह पक्का होता है कि एक्सटेंशन सिर्फ़ Chrome के उन वर्शन पर इंस्टॉल किया गया है जो इसके इस्तेमाल किए गए एपीआई के साथ काम करते हैं.
नए इंस्टॉलेशन के लिए, Chrome Web Store, Chrome के पुराने वर्शन इस्तेमाल करने वाले लोगों को एक्सटेंशन इंस्टॉल करने से रोकेगा. साथ ही, उन्हें "यह एक्सटेंशन आपके Chrome वर्शन के साथ काम नहीं करता" मैसेज दिखेगा. अगर किसी एक्सटेंशन के अपडेट से, minimum_chrome_version
, उपयोगकर्ता के इंस्टॉल किए गए Chrome वर्शन से ज़्यादा हो जाता है, तो मौजूदा उपयोगकर्ताओं को उस एक्सटेंशन के अपडेट मिलना बंद हो जाएंगे. डेवलपर को इस बारे में पता होना चाहिए. साथ ही, अगर उपयोगकर्ताओं के एक बड़े हिस्से पर इसका असर पड़ सकता है, तो उन्हें इसकी जानकारी देनी चाहिए.