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

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

Chrome वेब स्टोर के लिए ज़रूरी कुंजियां

"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"
क्रॉस-Origin-Embedder-Policy एचटीटीपी हेडर के लिए कोई वैल्यू तय करता है, यह विकल्प, किसी एक्सटेंशन पेज में क्रॉस-ऑरिजिन रिसॉर्स को एम्बेड करने की सुविधा को कॉन्फ़िगर करता है.
"cross_origin_opener_policy"
क्रॉस-Origin-Opener-Policy एचटीटीपी हेडर के लिए एक वैल्यू तय करता है. इससे तो आपको यह पक्का करना होगा कि कोई टॉप-लेवल एक्सटेंशन पेज किसी भी ब्राउज़िंग संदर्भ को शेयर न करे ऐसा ग्रुप जिसमें क्रॉस-ऑरिजिन दस्तावेज़ मौजूद होते हैं.
"declarative_net_request"
declarativeNetRequest के लिए स्टैटिक नियमों के बारे में बताता है एपीआई की मदद से, नेटवर्क के अनुरोधों को ब्लॉक किया जा सकता है और उनमें बदलाव किया जा सकता है.
"default_locale"
ऐसी स्ट्रिंग जो उस एक्सटेंशन की डिफ़ॉल्ट भाषा के बारे में बताती है जो काम करता है एक से ज़्यादा भाषाओं में बातचीत की जा सकती है. उदाहरण के लिए, "en" और "pt_BR" हैं. इस कुंजी की ज़रूरत इसमें है स्थानीय भाषा के हिसाब से बनाए गए एक्सटेंशन. इनका इस्तेमाल ऐसे एक्सटेंशन में नहीं किया जाना चाहिए जो स्थानीय भाषा में नहीं हैं. ज़्यादा जानकारी के लिए, अंतरराष्ट्रीय स्तर का दस्तावेज़ देखें.
"devtools_page"
यह उन पेजों के बारे में बताता है जो DevTools एपीआई का इस्तेमाल करते हैं.
"export"
इसकी मदद से, एक्सटेंशन से संसाधनों को एक्सपोर्ट किया जा सकता है. ज़्यादा जानकारी के लिए, यह देखें एक्सपोर्ट करें.
"externally_connectable"
यह बताता है कि कौनसे दूसरे पेज और एक्सटेंशन आपके एक्सटेंशन से कनेक्ट हो सकते हैं. इसके लिए ज़्यादा जानकारी के लिए, "externally_connectable" देखें.
"homepage_url"
एक्सटेंशन के होम पेज का यूआरएल बताने वाली स्ट्रिंग. अगर इसके लिए वैल्यू तय नहीं है, होम पेज, एक्सटेंशन के Chrome वेब स्टोर पेज पर डिफ़ॉल्ट रूप से सेट होता है. यह फ़ील्ड खास तौर पर तब उपयोगी होती है, जब आप एक्सटेंशन होस्ट करते हैं पर कैसे असर डालते हैं.
"host_permissions"
उन वेब पेजों की सूची बनाता है जिनके साथ आपके एक्सटेंशन को इंटरैक्ट करने की अनुमति है. साथ ही, यूआरएल के मैच होने वाले पैटर्न. इंस्टॉल करते समय, इन साइटों के लिए उपयोगकर्ता की अनुमति का अनुरोध किया जाता है समय. ज़्यादा जानकारी के लिए, होस्ट की अनुमतियां देखें.
"import"
इसकी मदद से संसाधन, एक्सटेंशन में इंपोर्ट किए जा सकते हैं. ज़्यादा जानकारी के लिए, यह देखें इंपोर्ट करें.
"incognito"
यह तय करता है कि एक्सटेंशन गुप्त मोड में कैसे काम करता है. इन वैल्यू का इस्तेमाल किया जा सकता है "spanning", "split", और "not_allowed". ज़्यादा जानकारी के लिए, यह देखें गुप्त मोड.
"key"
अलग-अलग डेवलपमेंट इस्तेमाल के उदाहरणों के लिए, आपके एक्सटेंशन के आईडी के बारे में बताता है. ज़्यादा के लिए ज़्यादा जानने के लिए, कुंजी देखें.
"minimum_chrome_version"
Chrome के सबसे पुराने वर्शन के बारे में बताता है जो आपका एक्सटेंशन इंस्टॉल कर सकता है. वैल्यू एक मौजूदा Chrome ब्राउज़र वर्शन स्ट्रिंग की सबस्ट्रिंग होनी चाहिए, जैसे "107" या "107.0.5304.87". ऐसे उपयोगकर्ता जिनके पास 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"
ऐसी एचटीएमएल फ़ाइल का पाथ तय करता है जो उपयोगकर्ता को एक्सटेंशन के विकल्प बदलने देता है पर क्लिक करें. ज़्यादा जानकारी के लिए, एम्बेड किए गए वीडियो देखें विकल्प.
"permissions"
यह खास एक्सटेंशन एपीआई के इस्तेमाल को चालू करता है. अनुमतियां देखें देखें. अलग-अलग एपीआई के रेफ़रंस पेजों में, अनुमतियों के बारे में जानकारी देनी होगी.
"requirements"
एक्सटेंशन का इस्तेमाल करने के लिए ज़रूरी टेक्नोलॉजी की सूची बनाता है. इस्तेमाल किए जा सकने वाले प्रॉडक्ट की सूची के लिए ज़रूरी शर्तें, ज़रूरी शर्तें देखें.
"sandbox"
एक्सटेंशन पेजों के उस सेट के बारे में बताता है जिसे एक्सटेंशन के एपीआई का ऐक्सेस नहीं है या सैंडबॉक्स न किए गए पेजों का सीधा ऐक्सेस. ज़्यादा जानकारी के लिए, यह देखें सैंडबॉक्स.
"short_name"
ऐसी स्ट्रिंग जिसमें एक्सटेंशन के छोटे वर्शन का इस्तेमाल किया जाना है जब वर्ण स्थान सीमित होता है. इसमें 12 से ज़्यादा वर्ण नहीं होने चाहिए. अगर यह है तय नहीं है, "नाम" का छोटा किया गया वर्शन बटन दिखाई देता है.
"side_panel"
किसी एचटीएमएल फ़ाइल की पहचान करता है, sidePanel.
"storage"
मैनेज किए जा रहे स्टोरेज के लिए JSON स्कीमा का एलान करता है क्षेत्र. ज़्यादा के लिए देखने के लिए, स्टोरेज की जगहों के लिए मेनिफ़ेस्ट देखें.
"tts_engine"
एक्सटेंशन को लिखाई को बोली में बदलने वाले इंजन के तौर पर रजिस्टर करता है. ज़्यादा जानकारी के लिए, यह देखें ttsEngine एपीआई.
"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.