資訊清單檔案格式

每個擴充功能的根目錄都必須有 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 線上應用程式商店要求金鑰

"description"
字串,用於說明 Chrome 線上應用程式商店和使用者擴充功能管理頁面上的擴充功能。長度上限為 132 個半形字元。如需本地化說明的資訊,請參閱「國際化」。
"icons"
一或多個代表你的擴充功能的圖示。如要瞭解最佳做法,請參閱「圖示」一文。

選用鍵

"action"
定義擴充功能圖示在 Google 工具列中的外觀和行為。詳情請參閱 chrome.action
"author"
指定用於建立擴充功能的帳戶電子郵件地址。
"background"
指定包含擴充功能 Service Worker 的 JavaScript 檔案,該檔案會做為事件處理常式。詳情請參閱「關於擴充功能服務工作站」。
"chrome_settings_overrides"
定義所選 Chrome 設定的覆寫值。詳情請參閱「覆寫 Chrome 設定」。
"chrome_url_overrides"
定義預設 Chrome 網頁的覆寫值。詳情請參閱「覆寫 Chrome 網頁」。
"commands"
定義擴充功能中的鍵盤快速鍵。詳情請參閱 chrome.commands
"content_scripts"
指定使用者開啟特定網頁時要使用的 JavaScript 或 CSS 檔案。詳情請參閱「內容指令碼」。
"content_security_policy"
定義擴充功能可用的指令碼、樣式和其他資源限制。詳情請參閱「內容安全政策」。
"cross_origin_embedder_policy"
指定 Cross-Origin-Embedder-Policy HTTP 標頭的值,以設定擴充功能頁面中跨來源資源的嵌入。
"cross_origin_opener_policy"
指定 Cross-Origin-Opener-Policy HTTP 標頭的值,可確保頂層擴充功能頁面不會與跨來源文件分享瀏覽結構定義群組。
"declarative_net_request"
declarativeNetRequest API 定義靜態規則,以允許封鎖及修改網路要求。
"default_locale"
定義擴充功能預設語言的字串,這個字串支援多個語言代碼。例如「en」和「pt_BR」。這組金鑰須用於本地化擴充功能,而且不得用於未本地化的擴充功能。詳情請參閱「國際化」一文。
"devtools_page"
定義使用 DevTools API 的網頁。
"export"
允許從擴充功能匯出資源。詳情請參閱「匯出」。
"externally_connectable"
指定其他網頁和擴充功能可連結至你的擴充功能。詳情請參閱 "externally_connectable" 的說明。
"homepage_url"
指定擴充功能首頁網址的字串。如未定義,首頁會預設為擴充功能的 Chrome 線上應用程式商店頁面。如果是由自己的網站代管擴充功能,這個欄位就特別實用。
"host_permissions"
列出擴充功能可互動的網頁 (透過網址比對模式定義)。系統會在安裝時要求這些網站的使用者權限。詳情請參閱主機權限
"import"
允許將資源匯入擴充功能。詳情請參閱「匯入」。
"incognito"
定義擴充功能在無痕模式下的行為。支援的值為 "spanning""split""not_allowed"。詳情請參閱無痕模式
"key"
指定各種開發用途的擴充功能 ID。詳情請參閱金鑰
"minimum_chrome_version"
定義可安裝擴充功能的最舊 Chrome 版本。這個值必須是現有 Chrome 瀏覽器版本字串的子字串,例如 "107""107.0.5304.87"。如果使用者的 Chrome 版本低於最低版本,會在 Chrome 線上應用程式商店中看到「不相容」警告,且無法安裝您的擴充功能。如果您將這個選項新增至現有擴充功能,則 Chrome 較舊版本的使用者將不會收到擴充功能的自動更新。這包括處於暫時模式的業務使用者。
"oauth2"
允許使用 OAuth 2.0 安全性 ID。這個鍵的值必須是包含 "client_id""scopes" 屬性的物件。詳情請參閱 OAuth 2.0 教學課程
"omnibox"
允許擴充功能在 Chrome 的網址列登錄關鍵字。詳情請參閱網址列
"optional_host_permissions"
宣告擴充功能的選用主機權限
"optional_permissions"
宣告擴充功能的選用權限
"options_page"
指定 options.html 檔案的路徑,做為選項頁面使用。詳情請參閱「為使用者提供選項」。
"options_ui"
指定 HTML 檔案的路徑,讓使用者透過 Chrome 擴充功能頁面變更擴充功能選項。詳情請參閱嵌入選項
"permissions"
啟用特定擴充功能 API。如需一般說明,請參閱權限相關說明。個別 API 的參考頁面會列出所需的權限。
"requirements"
列出使用擴充功能所需的技術。如需支援的要求清單,請參閱「需求條件」一節。
"sandbox"
定義一組無法存取擴充功能 API 或直接存取未採用沙箱機制頁面的擴充功能頁面。詳情請參閱「沙箱」一文。
"short_name"
字元空間限制時,使用包含擴充功能名稱的精簡版本字串。長度上限為 12 個半形字元。如果未定義,則系統會改為顯示截斷的「名稱」金鑰。
"side_panel"
找出要顯示在sidePanel的 HTML 檔案。
"storage"
宣告代管儲存空間區域的 JSON 結構定義。詳情請參閱「儲存空間區域資訊清單」。
"tts_engine"
將擴充功能註冊為文字轉語音引擎。詳情請參閱 ttsEngine API。
"update_url"
包含擴充功能更新頁面網址的字串。如果您是在 Chrome 線上應用程式商店外代管擴充功能,請使用這組金鑰。
"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 Method Editor API。詳情請參閱 input_components 的說明。