清单文件格式

每个扩展程序的根目录中都必须有一个 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"
指定包含扩展程序的 Service Worker 的 JavaScript 文件,该 Service Worker 充当 事件处理脚本有关详情,请参阅关于扩展程序服务 工作器数量
"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 浏览器的用户 。这包括以下国家/地区的商家用户: 暂存模式。
"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 个字符。如果这是 未定义,“name”的截断版本键。
"side_panel"
用于标识要在以下位置显示的 HTML 文件: sidePanel
"storage"
声明托管存储的 JSON 架构 区域。有关 相关信息,请参阅存储区域的清单
"tts_engine"
将扩展程序注册为文字转语音引擎。如需了解详情,请参阅 ttsEngine API 实现。
"update_url"
包含扩展程序更新页面网址的字符串。在以下情况下使用此密钥: 您是托管扩展程序的 Chrome 应用商店之外的应用。
"version_name"
描述扩展程序版本的字符串。示例包括 "1.0 beta""build rc2"。如果未指定,则版本值会显示在 扩展程序管理页面。
"web_accessible_resources"
定义扩展名内可通过网页或其他工具访问的文件 。如需了解详情,请参阅可通过 Web 访问 资源

可选的 ChromeOS 密钥

"file_browser_handlers"
提供对fileBrowserHandler的访问权限 API:该 API 可让扩展程序访问 ChromeOS 文件浏览器。
"file_handlers"
用于指定 ChromeOS 扩展程序要处理的文件类型。如需了解详情,请参阅 file_handlers
"file_system_provider_capabilities"
允许访问fileSystemProvider API:可让扩展程序创建 ChromeOS 可以使用的文件系统。
"input_components"
允许使用 Input Method Editor API。如需了解详情,请参阅 input_components