हर एक्सटेंशन की रूट डायरेक्ट्री में एक manifest.json
फ़ाइल होनी चाहिए. इसमें, उस एक्सटेंशन के स्ट्रक्चर और काम करने के तरीके के बारे में अहम जानकारी होती है.
इस पेज पर, एक्सटेंशन मेनिफ़ेस्ट के स्ट्रक्चर और उनमें शामिल की जा सकने वाली सुविधाओं के बारे में बताया गया है.
उदाहरण
यहां दिए गए उदाहरणों में, मेनिफ़ेस्ट का बुनियादी स्ट्रक्चर और आम तौर पर इस्तेमाल की जाने वाली कुछ सुविधाएं दिखाई गई हैं. इनसे आपको अपना मेनिफ़ेस्ट बनाने में मदद मिलेगी:
कम से कम मेनिफ़ेस्ट
{
"manifest_version": 3,
"name": "Minimal Manifest",
"version": "1.0.0",
"description": "A basic example extension with only required keys",
"icons": {
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
}
कॉन्टेंट स्क्रिप्ट रजिस्टर करना
{
"manifest_version": 3,
"name": "Run script automatically",
"description": "Runs a script on www.example.com automatically when user installs the extension",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"content_scripts": [
{
"js": [
"content-script.js"
],
"matches": [
"http://*.example.com//"
]
}
]
}
कॉन्टेंट स्क्रिप्ट इंजेक्ट करना
{
"manifest_version": 3,
"name": "Click to run",
"description": "Runs a script when the user clicks the action toolbar icon.",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_icon": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
}
},
"permissions": ["scripting", "activeTab"]
}
अनुमतियों वाला पॉप-अप
{
"manifest_version": 3,
"name": "Popup extension that requests permissions",
"description": "Extension that includes a popup and requests host permissions and storage permissions .",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"action": {
"default_popup": "popup.html"
},
"host_permissions": [
"https://*.example.com/"
],
"permissions": [
"storage"
]
}
साइड पैनल
{
"manifest_version": 3,
"name": "Side panel extension",
"version": "1.0",
"description": "Extension with a default side panel.",
"icons": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"side_panel": {
"default_path": "sidepanel.html"
},
"permissions": ["sidePanel"]
}
मेनिफ़ेस्ट कुंजियां
यहां उन सभी मेनिफ़ेस्ट कुंजियों की सूची दी गई है जिनका इस्तेमाल किया जा सकता है.
एक्सटेंशन प्लैटफ़ॉर्म के लिए ज़रूरी कुंजियां
"manifest_version"
- यह एक पूर्णांक है, जो उस मेनिफ़ेस्ट फ़ाइल फ़ॉर्मैट के वर्शन के बारे में बताता है जिसका इस्तेमाल आपका एक्सटेंशन करता है. वैल्यू के तौर पर सिर्फ़
3
का इस्तेमाल किया जा सकता है. "name"
- यह एक स्ट्रिंग है, जो Chrome वेब स्टोर, इंस्टॉल डायलॉग, और उपयोगकर्ता के Chrome एक्सटेंशन पेज (
chrome://extensions
) में एक्सटेंशन की पहचान करती है. इसकी ज़्यादा से ज़्यादा लंबाई 75 वर्ण हो सकती है. अलग-अलग इलाकों के हिसाब से नामों का इस्तेमाल करने के बारे में जानकारी पाने के लिए, अंतरराष्ट्रीय स्तर पर उपलब्ध कराना लेख पढ़ें. "version"
- एक स्ट्रिंग, जो एक्सटेंशन के वर्शन नंबर की पहचान करती है. वर्शन नंबर को फ़ॉर्मैट करने के बारे में जानकारी पाने के लिए, वर्शन देखें.
Chrome Web Store के लिए ज़रूरी कुंजियां
"description"
- यह एक स्ट्रिंग है, जो Chrome वेब स्टोर और उपयोगकर्ता के एक्सटेंशन मैनेजमेंट पेज, दोनों पर एक्सटेंशन के बारे में बताती है. इसमें 132 से ज़्यादा वर्ण नहीं हो सकते. ब्यौरे को स्थानीय भाषा में उपलब्ध कराने के बारे में जानकारी पाने के लिए, अंतरराष्ट्रीय स्तर पर उपलब्ध कराना देखें.
"icons"
- आपके एक्सटेंशन को दिखाने वाले एक या उससे ज़्यादा आइकॉन. सबसे सही तरीकों के बारे में जानकारी पाने के लिए, आइकॉन लेख पढ़ें.
वैकल्पिक बटन
"action"
- Google टूलबार में, एक्सटेंशन के आइकॉन के दिखने और काम करने के तरीके के बारे में बताता है. ज़्यादा जानकारी के लिए,
chrome.action
देखें. "author"
- उस खाते का ईमेल पता बताता है जिसका इस्तेमाल एक्सटेंशन बनाने के लिए किया गया था.
"background"
- इससे, एक्सटेंशन के सेवा वर्कर वाली JavaScript फ़ाइल के बारे में पता चलता है. यह फ़ाइल, इवेंट हैंडलर के तौर पर काम करती है. ज़्यादा जानकारी के लिए, एक्सटेंशन के सर्विस वर्कर के बारे में जानकारी देखें.
"chrome_settings_overrides"
- चुनी गई Chrome सेटिंग के लिए बदलावों को तय करता है. ज़्यादा जानकारी के लिए, Chrome की सेटिंग बदलना लेख पढ़ें.
"chrome_url_overrides"
- Chrome के डिफ़ॉल्ट पेजों के लिए बदलावों को तय करता है. ज़्यादा जानकारी के लिए, Chrome पेजों को बदलना लेख पढ़ें.
"commands"
- एक्सटेंशन में कीबोर्ड शॉर्टकट तय करता है. ज़्यादा जानकारी के लिए, chrome.commands देखें.
"content_scripts"
- इससे यह तय होता है कि उपयोगकर्ता के कुछ वेब पेज खोलने पर, JavaScript या सीएसएस फ़ाइलों का इस्तेमाल किया जाए. ज़्यादा जानकारी के लिए, कॉन्टेंट स्क्रिप्ट देखें.
"content_security_policy"
- इससे, उन स्क्रिप्ट, स्टाइल, और अन्य संसाधनों पर पाबंदियां तय होती हैं जिनका इस्तेमाल एक्सटेंशन कर सकता है. ज़्यादा जानकारी के लिए, कॉन्टेंट की सुरक्षा से जुड़ी नीति देखें.
"cross_origin_embedder_policy"
- इससे क्रॉस-ऑरिजिन-एम्बेडर-पॉलिसी एचटीटीपी हेडर की वैल्यू तय होती है. यह हेडर, एक्सटेंशन पेज में क्रॉस-ऑरिजिन संसाधनों को एम्बेड करने के लिए कॉन्फ़िगर करता है.
"cross_origin_opener_policy"
- Cross-Origin-Opener-Policy एचटीटीपी हेडर के लिए वैल्यू तय करता है. इससे यह पक्का किया जा सकता है कि टॉप लेवल एक्सटेंशन पेज, क्रॉस-ऑरिजिन दस्तावेज़ों के साथ ब्राउज़िंग कॉन्टेक्स्ट ग्रुप शेयर न करे.
"declarative_net_request"
- यह declarativeNetRequest एपीआई के लिए स्टैटिक नियम तय करता है. इससे नेटवर्क अनुरोधों को ब्लॉक करने और उनमें बदलाव करने की अनुमति मिलती है.
"default_locale"
- एक स्ट्रिंग, जो कई स्थानीय भाषाओं के साथ काम करने वाले एक्सटेंशन की डिफ़ॉल्ट भाषा तय करती है. उदाहरण के लिए, "en" और "pt_BR". स्थानीय भाषा में उपलब्ध एक्सटेंशन के लिए, इस पासकोड की ज़रूरत होती है. इसका इस्तेमाल, स्थानीय भाषा में उपलब्ध नहीं कराए गए एक्सटेंशन के लिए नहीं किया जाना चाहिए. ज़्यादा जानकारी के लिए, अंतरराष्ट्रीय स्तर पर उपलब्ध कराना लेख पढ़ें.
"devtools_page"
- DevTools एपीआई का इस्तेमाल करने वाले पेजों की जानकारी देता है.
"export"
- इससे, एक्सटेंशन से रिसॉर्स एक्सपोर्ट किए जा सकते हैं. ज़्यादा जानकारी के लिए, एक्सपोर्ट करें लेख पढ़ें.
"externally_connectable"
- यह बताता है कि आपके एक्सटेंशन से कौनसे दूसरे पेज और एक्सटेंशन कनेक्ट हो सकते हैं. ज़्यादा जानकारी के लिए,
"externally_connectable"
देखें. "homepage_url"
- एक्सटेंशन के होम पेज के यूआरएल की जानकारी देने वाली स्ट्रिंग. अगर इसकी कोई वैल्यू नहीं दी गई है, तो होम पेज डिफ़ॉल्ट रूप से, एक्सटेंशन के Chrome Web Store पेज पर खुलेगा. यह फ़ील्ड खास तौर पर तब काम का होता है, जब एक्सटेंशन को अपनी साइट पर होस्ट किया जाता है.
"host_permissions"
- इसमें उन वेब पेजों की सूची होती है जिनके साथ आपके एक्सटेंशन को इंटरैक्ट करने की अनुमति होती है. इन पेजों की पहचान, यूआरएल मैच पैटर्न का इस्तेमाल करके की जाती है. इन साइटों के लिए, उपयोगकर्ता की अनुमति का अनुरोध इंस्टॉल के समय किया जाता है. ज़्यादा जानकारी के लिए, होस्ट की अनुमतियां देखें.
"import"
- इससे, एक्सटेंशन में संसाधनों को इंपोर्ट करने की अनुमति मिलती है. ज़्यादा जानकारी के लिए, इंपोर्ट देखें.
"incognito"
- इससे यह तय होता है कि गुप्त मोड में एक्सटेंशन कैसे काम करता है. इन वैल्यू का इस्तेमाल किया जा सकता है:
"spanning"
,"split"
, और"not_allowed"
. ज़्यादा जानकारी के लिए, गुप्त मोड देखें. "key"
- डेवलपमेंट के अलग-अलग इस्तेमाल के उदाहरणों के लिए, आपके एक्सटेंशन का आईडी बताता है. ज़्यादा जानकारी के लिए, कुंजी देखें.
"minimum_chrome_version"
- इससे पता चलता है कि Chrome का कौनसा सबसे पुराना वर्शन आपका एक्सटेंशन इंस्टॉल कर सकता है. यह ज़रूरी है कि वैल्यू, Chrome ब्राउज़र के मौजूदा वर्शन की स्ट्रिंग का सबसेट हो. जैसे,
"107"
या"107.0.5304.87"
. Chrome के ज़रूरी वर्शन से पुराने वर्शन इस्तेमाल करने वाले लोगों को, Chrome वेब स्टोर में "काम नहीं करता" चेतावनी दिखती है. साथ ही, वे आपका एक्सटेंशन इंस्टॉल नहीं कर पाते. अगर इसे किसी मौजूदा एक्सटेंशन में जोड़ा जाता है, तो जिन उपयोगकर्ताओं के पास Chrome का पुराना वर्शन है उन्हें आपके एक्सटेंशन के लिए अपने-आप अपडेट नहीं मिलेंगे. इसमें, अल्पकालिक मोड में ब्राउज़ करने वाले कारोबारी उपयोगकर्ता भी शामिल हैं. "oauth2"
- OAuth 2.0 सुरक्षा आईडी का इस्तेमाल करने की अनुमति देता है. इस कुंजी की वैल्यू,
"client_id"
और"scopes"
प्रॉपर्टी वाला ऑब्जेक्ट होनी चाहिए. ज़्यादा जानकारी के लिए, OAuth 2.0 ट्यूटोरियल देखें. "omnibox"
- इससे एक्सटेंशन को Chrome के पता बार में कोई कीवर्ड रजिस्टर करने की अनुमति मिलती है. ज़्यादा जानकारी के लिए, सर्च बॉक्स देखें.
"optional_host_permissions"
- आपके एक्सटेंशन के लिए, होस्ट की वैकल्पिक अनुमतियों का एलान करता है.
"optional_permissions"
- आपके एक्सटेंशन के लिए वैकल्पिक अनुमतियों का एलान करता है.
"options_page"
- एक्सटेंशन के लिए, options.html फ़ाइल का पाथ बताता है, ताकि उसे विकल्पों वाले पेज के तौर पर इस्तेमाल किया जा सके. ज़्यादा जानकारी के लिए, उपयोगकर्ताओं को विकल्प दें लेख पढ़ें.
"options_ui"
- इससे किसी ऐसी एचटीएमएल फ़ाइल का पाथ पता चलता है जिसकी मदद से उपयोगकर्ता, Chrome के एक्सटेंशन पेज से एक्सटेंशन के विकल्प बदल सकता है. ज़्यादा जानकारी के लिए, एम्बेड किए गए विकल्प देखें.
"permissions"
- कुछ खास एक्सटेंशन एपीआई का इस्तेमाल करने की अनुमति देता है. सामान्य जानकारी के लिए, अनुमतियां देखें. अलग-अलग एपीआई के रेफ़रंस पेजों पर, उनसे जुड़ी अनुमतियों की सूची दी गई है.
"requirements"
- इसमें, एक्सटेंशन का इस्तेमाल करने के लिए ज़रूरी टेक्नोलॉजी की सूची होती है. ज़रूरी शर्तों की सूची देखने के लिए, ज़रूरी शर्तें देखें.
"sandbox"
- एक्सटेंशन पेजों के ऐसे सेट के बारे में बताता है जिनके पास एक्सटेंशन एपीआई का ऐक्सेस नहीं है या जिनके पास सैंडबॉक्स में नहीं रखे गए पेजों का सीधा ऐक्सेस नहीं है. ज़्यादा जानकारी के लिए, Sandbox देखें.
"short_name"
- यह एक स्ट्रिंग होती है, जिसमें एक्सटेंशन के नाम का छोटा वर्शन होता है. इसका इस्तेमाल तब किया जाता है, जब वर्णों की जगह सीमित हो. इसमें 12 से ज़्यादा वर्ण नहीं होने चाहिए. अगर यह एट्रिब्यूट तय नहीं किया गया है, तो इसके बजाय "name" बटन का छोटा वर्शन दिखता है.
"side_panel"
- sidePanel में दिखाने के लिए, एचटीएमएल फ़ाइल की पहचान करता है.
"storage"
- मैनेज किए जा रहे स्टोरेज एरिया के लिए, JSON स्कीमा का एलान करता है. ज़्यादा जानकारी के लिए, स्टोरेज एरिया के लिए मेनिफ़ेस्ट देखें.
"tts_engine"
- एक्सटेंशन को लिखाई को बोली में बदलने वाले इंजन के तौर पर रजिस्टर करता है. ज़्यादा जानकारी के लिए, ttsEngine API देखें.
"update_url"
- ऐसी स्ट्रिंग जिसमें एक्सटेंशन के अपडेट पेज का यूआरएल शामिल होता है. अगर अपने एक्सटेंशन को Chrome वेब स्टोर के बाहर होस्ट किया जा रहा है, तो इस पासकोड का इस्तेमाल करें.
"version_name"
- एक्सटेंशन के वर्शन की जानकारी देने वाली स्ट्रिंग. उदाहरण के लिए,
"1.0 beta"
और"build rc2"
. अगर इसकी कोई वैल्यू नहीं दी गई है, तो "वर्शन" वैल्यू, एक्सटेंशन मैनेजमेंट पेज पर दिखती है. "web_accessible_resources"
- इससे एक्सटेंशन में मौजूद उन फ़ाइलों के बारे में पता चलता है जिन्हें वेब पेजों या अन्य एक्सटेंशन से ऐक्सेस किया जा सकता है. ज़्यादा जानकारी के लिए, वेब पर ऐक्सेस किए जा सकने वाले संसाधन देखें.
ChromeOS की वैकल्पिक कुंजियां
"file_browser_handlers"
fileBrowserHandler
एपीआई का ऐक्सेस देता है. इसकी मदद से, एक्सटेंशन, ChromeOS फ़ाइल ब्राउज़र को ऐक्सेस कर सकते हैं."file_handlers"
- इससे यह तय होता है कि ChromeOS एक्सटेंशन किस तरह की फ़ाइलों को हैंडल कर सकते हैं. ज़्यादा जानकारी के लिए,
file_handlers
देखें. "file_system_provider_capabilities"
fileSystemProvider
एपीआई को ऐक्सेस करने की अनुमति देता है. इससे एक्सटेंशन, ऐसे फ़ाइल सिस्टम बना सकते हैं जिनका इस्तेमाल ChromeOS कर सकता है."input_components"
- इनपुट मेथड एडिटर एपीआई का इस्तेमाल करने की अनुमति देता है. ज़्यादा जानकारी के लिए,
input_components
देखें.