मेनिफ़ेस्ट फ़ाइल फ़ॉर्मैट

हर एक्सटेंशन की रूट डायरेक्ट्री में एक 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 Web Store, इंस्टॉल डायलॉग, और उपयोगकर्ता के Chrome एक्सटेंशन पेज (chrome://extensions) में मौजूद एक्सटेंशन की पहचान करती है. इसमें ज़्यादा से ज़्यादा 75 वर्ण हो सकते हैं. अलग-अलग जगहों के लिए नाम इस्तेमाल करने के बारे में जानकारी पाने के लिए, इंटरनैशनलाइज़ेशन देखें.
"version"
एक ऐसी स्ट्रिंग जो एक्सटेंशन के वर्शन नंबर की पहचान करती है. वर्शन नंबर को फ़ॉर्मैट करने के बारे में जानकारी के लिए, वर्शन देखें.

Chrome Web Store के लिए ज़रूरी कुंजियां

"description"
ऐसी स्ट्रिंग जो Chrome Web Store और उपयोगकर्ता के एक्सटेंशन मैनेजमेंट पेज, दोनों पर एक्सटेंशन के बारे में बताती है. ज़्यादा से ज़्यादा 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-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 Web Store में "काम नहीं करता" चेतावनी दिखती है और वे आपका एक्सटेंशन इंस्टॉल नहीं कर सकते. अगर इसे किसी मौजूदा एक्सटेंशन में जोड़ा जाता है, तो जिन उपयोगकर्ताओं का Chrome वर्शन पुराना है उन्हें आपके एक्सटेंशन में अपने-आप अपडेट नहीं मिलेंगे. इसमें कुछ समय के लिए प्रोफ़ाइल बनाने वाले मोड में कारोबार करने वाले उपयोगकर्ता भी शामिल हैं.
"oauth2"
OAuth 2.0 सुरक्षा आईडी के इस्तेमाल की अनुमति देता है. इस कुंजी की वैल्यू, "client_id" और "scopes" प्रॉपर्टी वाला कोई ऑब्जेक्ट होना चाहिए. ज़्यादा जानकारी के लिए, OAuth 2.0 ट्यूटोरियल देखें.
"omnibox"
एक्सटेंशन को Chrome के पता बार में एक कीवर्ड रजिस्टर करने की अनुमति देता है. ज़्यादा जानकारी के लिए, खोज बार देखें.
"optional_host_permissions"
आपके एक्सटेंशन के लिए वैकल्पिक होस्ट अनुमतियों का एलान करता है.
"optional_permissions"
आपके एक्सटेंशन के लिए वैकल्पिक अनुमतियों का एलान करता है.
"options_page"
एक्सटेंशन पेज के विकल्प पेज के तौर पर इस्तेमाल करने के लिए, option.html फ़ाइल का पाथ तय करता है. ज़्यादा जानकारी के लिए, उपयोगकर्ताओं को विकल्प देना देखें.
"options_ui"
एचटीएमएल फ़ाइल का पाथ तय करता है. इससे उपयोगकर्ता, Chrome एक्सटेंशन पेज से एक्सटेंशन के विकल्प बदल सकता है. ज़्यादा जानकारी के लिए, एम्बेड किए गए विकल्प देखें.
"permissions"
कुछ खास एक्सटेंशन एपीआई के इस्तेमाल को चालू करता है. सामान्य जानकारी के लिए, अनुमतियां देखें. अलग-अलग एपीआई के रेफ़रंस पेज में, ज़रूरी अनुमतियों की सूची होती है.
"requirements"
एक्सटेंशन का इस्तेमाल करने के लिए ज़रूरी तकनीकों की सूची बनाता है. इस्तेमाल की जा सकने वाली ज़रूरी शर्तों की सूची के लिए, ज़रूरी शर्तें देखें.
"sandbox"
एक्सटेंशन पेजों के ऐसे सेट के बारे में बताता है जिनके पास एक्सटेंशन एपीआई का ऐक्सेस नहीं होता या जो सैंडबॉक्स नहीं किए गए पेजों का सीधा ऐक्सेस नहीं होते. ज़्यादा जानकारी के लिए, सैंडबॉक्स देखें.
"short_name"
इस स्ट्रिंग में एक्सटेंशन के नाम का छोटा वर्शन होता है. इसका इस्तेमाल वर्ण सीमित होने पर किया जाता है. ज़्यादा से ज़्यादा 12 वर्ण हाेने चाहिए. अगर इसके बारे में जानकारी नहीं है, तो इसके बजाय "name" कुंजी का छोटा किया गया वर्शन दिखता है.
"side_panel"
sidePanel में दिखाने के लिए, एचटीएमएल फ़ाइल की पहचान करता है.
"storage"
मैनेज किए जा रहे स्टोरेज एरिया के लिए, JSON स्कीमा का एलान करता है. ज़्यादा जानकारी के लिए, स्टोरेज एरिया के लिए मेनिफ़ेस्ट देखें.
"tts_engine"
एक्सटेंशन को लिखाई को बोली में बदलने वाले इंजन के तौर पर रजिस्टर करता है. ज़्यादा जानकारी के लिए, ttsEngine एपीआई देखें.
"update_url"
इस स्ट्रिंग में एक्सटेंशन के अपडेट पेज का यूआरएल होता है. अगर अपने एक्सटेंशन को Chrome Web Store के बाहर होस्ट किया जा रहा है, तो इस कुंजी का इस्तेमाल करें.
"version_name"
एक्सटेंशन के वर्शन के बारे में बताने वाली स्ट्रिंग. उदाहरण के लिए, "1.0 beta" और "build rc2". अगर इसकी जानकारी नहीं दी जाती है, तो "वर्शन" वैल्यू एक्सटेंशन मैनेजमेंट पेज पर दिखती है.
"web_accessible_resources"
एक्सटेंशन में मौजूद उन फ़ाइलों के बारे में बताता है जिन्हें वेब पेज या अन्य एक्सटेंशन से ऐक्सेस किया जा सकता है. ज़्यादा जानकारी के लिए, वेब ऐक्सेस करने लायक संसाधन देखें.

ChromeOS की वैकल्पिक कुंजियां

"file_browser_handlers"
यह, fileBrowserHandler API का ऐक्सेस देता है, जो एक्सटेंशन को ChromeOS फ़ाइल ब्राउज़र को ऐक्सेस करने की सुविधा देता है.
"file_handlers"
ChromeOS एक्सटेंशन के लिए उन फ़ाइल टाइप के बारे में बताता है जिन्हें हैंडल करना है. ज़्यादा जानकारी के लिए, file_handlers देखें.
"file_system_provider_capabilities"
यह अनुमति, fileSystemProvider API को ऐक्सेस करने की अनुमति देती है. इससे एक्सटेंशन को ChromeOS के साथ काम करने वाले फ़ाइल सिस्टम बनाने की सुविधा मिलती है.
"input_components"
इनपुट के तरीके में बदलाव करने वाले एपीआई के इस्तेमाल की अनुमति देता है. ज़्यादा जानकारी के लिए, input_components देखें.