मेनिफ़ेस्ट वर्शन

एक्सटेंशन, थीम, और ऐप्लिकेशन सिर्फ़ संसाधनों के बंडल होते हैं. इनमें 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 का इस्तेमाल करें.