एक्सटेंशन, थीम, और ऐप्लिकेशन सिर्फ़ संसाधनों के बंडल होते हैं. इनमें manifest.json
फ़ाइल शामिल होती है, जो पैकेज के कॉन्टेंट के बारे में बताती है. आम तौर पर, इस फ़ाइल का फ़ॉर्मैट एक जैसा होता है. हालांकि, अहम समस्याओं को ठीक करने के लिए, समय-समय पर नुकसान पहुंचा सकने वाले बदलाव करने होंगे.
डेवलपर को यह तय करना होगा कि उनके पैकेज के लिए तय किए गए मेनिफ़ेस्ट का कौनसा वर्शन वर्शन है. इसके लिए, उन्हें मेनिफ़ेस्ट में manifest_version
कुंजी सेट करनी होगी.
मौजूदा वर्शन
डेवलपर को फ़िलहाल 'manifest_version': 2
के बारे में बताना चाहिए:
{
...,
"manifest_version": 2,
...
}
Chrome 18 में मेनिफ़ेस्ट वर्शन 1 रोक दिया गया था. साथ ही, दिए गए शेड्यूल के मुताबिक इस्तेमाल बंद कर दिया जाएगा.
मेनिफ़ेस्ट वर्शन 1 के लिए सहायता शेड्यूल
अगस्त 2012
- वेब स्टोर, मेनिफ़ेस्ट के नए वर्शन 1 के एक्सटेंशन नहीं बना पाएगा.
- वेब स्टोर, मौजूदा मेनिफ़ेस्ट वर्शन 1 एक्सटेंशन के अपडेट की अनुमति देगा.
मार्च 2013
- वेब स्टोर 4 मार्च, 2013 को मेनिफ़ेस्ट वर्शन 1 एक्सटेंशन के अपडेट ब्लॉक कर देगा.
अप्रैल 2013
- Chrome 27 का बीटा वर्शन, मेनिफ़ेस्ट वर्शन 1 के एक्सटेंशन या डेवलपमेंट के लिए लोड करना बंद कर देगा.
जून 2013
- Web Store, वॉल, खोज के नतीजों, और कैटगरी पेजों से मेनिफ़ेस्ट वर्शन 1 के एक्सटेंशन को हटा देगा.
- सभी डेवलपर को सूचना वाले ऐसे ईमेल भेजे जाएंगे जिनके मेनिफ़ेस्ट वर्शन 1 के एक्सटेंशन, स्टोर में अब भी मौजूद हैं. इससे उन्हें यह याद होगा कि ये एक्सटेंशन अनपब्लिश कर दिए जाएंगे और उन्हें अपडेट करने के निर्देश मिलेंगे.
सितंबर 2013
- वेब स्टोर, मेनिफ़ेस्ट के पहले वर्शन के सभी एक्सटेंशन को अनपब्लिश कर देगा.
- उन डेवलपर को आखिरी सूचना वाले ईमेल भेजे जाएंगे जिनके मेनिफ़ेस्ट वर्शन 1 के एक्सटेंशन अब भी वेब स्टोर में मौजूद हैं.
- Chrome, इंस्टॉल किए गए मेनिफ़ेस्ट वर्शन 1 के एक्सटेंशन को लोड करता रहेगा और उन्हें चलाता रहेगा.
जनवरी 2014
- Chrome, मेनिफ़ेस्ट वर्शन 1 के एक्सटेंशन को लोड करना या चलाना बंद कर देगा.
वर्शन 1 और 2 के बीच के बदलाव
- कॉन्टेंट की सुरक्षा नीति, डिफ़ॉल्ट रूप से
`script-src 'self'; object-src 'self';
पर सेट होती है. इससे डेवलपर पर कई तरह के असर पड़ सकते हैं. इस बारे में,content_security_policy
दस्तावेज़ में पूरी जानकारी दी गई है. - किसी पैकेज के संसाधन अब डिफ़ॉल्ट रूप से बाहरी वेबसाइटों के लिए उपलब्ध नहीं हैं. जैसे, किसी इमेज के
src
याscript
टैग में. अगर आपको कोई वेबसाइट अपने पैकेज में मौजूद संसाधन को लोड करना है, तो आपकोweb_accessible_resources
मेनिफ़ेस्ट एट्रिब्यूट के ज़रिए, आपको उसे साफ़ तौर पर अनुमति देनी होगी. यह खास तौर पर उन एक्सटेंशन के लिए काम का है जो इंजेक्ट की गई कॉन्टेंट स्क्रिप्ट की मदद से, वेबसाइट पर इंटरफ़ेस तैयार करते हैं. background_page
प्रॉपर्टी कोbackground
प्रॉपर्टी से बदल दिया गया है. इसमें, ऐसी प्रॉपर्टी है जोscripts
याpage
है. इससे जुड़ी ज़्यादा जानकारी, इवेंट के पेज दस्तावेज़ में उपलब्ध है.ब्राउज़र कार्रवाई में हुए बदलाव:
- मेनिफ़ेस्ट में
browser_actions
कुंजी औरchrome.browserActions
एपीआई अब उपलब्ध नहीं हैं. इसके बजाय, एकवचनbrowser_action
औरchrome.browserAction
का इस्तेमाल करें. browser_action
कीicons
प्रॉपर्टी हटा दी गई है. इसके बजाय,default_icon
प्रॉपर्टी या browserAction.setIcon का इस्तेमाल करें.browser_action
कीname
प्रॉपर्टी हटा दी गई है. इसके बजाय,default_title
प्रॉपर्टी या browserAction.setTitle का इस्तेमाल करें.browser_action
कीpopup
प्रॉपर्टी हटा दी गई है. इसके बजाय,default_popup
प्रॉपर्टी या browserAction.setPopup का इस्तेमाल करें.browser_action
कीdefault_popup
प्रॉपर्टी को अब ऑब्जेक्ट के तौर पर नहीं बताया जा सकता. यह एक स्ट्रिंग होनी चाहिए.
- मेनिफ़ेस्ट में
पेज कार्रवाई में हुए बदलाव:
- मेनिफ़ेस्ट में
page_actions
कुंजी औरchrome.pageActions
एपीआई अब उपलब्ध नहीं हैं. इसके बजाय, एकवचनpage_action
औरchrome.pageAction
का इस्तेमाल करें. page_action
कीicons
प्रॉपर्टी हटा दी गई है. इसके बजाय,default_icon
प्रॉपर्टी या pageAction.setIcon का इस्तेमाल करें.page_action
कीname
प्रॉपर्टी हटा दी गई है. इसके बजाय,default_title
प्रॉपर्टी या pageAction.setTitle का इस्तेमाल करें.page_action
कीpopup
प्रॉपर्टी हटा दी गई है. इसके बजाय,default_popup
प्रॉपर्टी या pageAction.setPopup का इस्तेमाल करें.page_action
कीdefault_popup
प्रॉपर्टी को अब ऑब्जेक्ट के तौर पर नहीं बताया जा सकता. यह एक स्ट्रिंग होनी चाहिए.
- मेनिफ़ेस्ट में
chrome.self
एपीआई को हटा दिया गया है. इसके बजाय,chrome.extension
का इस्तेमाल करें.chrome.extension.getTabContentses
(!!!) औरchrome.extension.getExtensionTabs
अब उपलब्ध नहीं हैं. इसके बजाय, extension.getViews का इस्तेमाल करें.Port.tab
चला गया है. इसके बजाय, runtime.Port का इस्तेमाल करें.