覆盖 Chrome 设置

“设置覆盖”是扩展程序的一种覆盖所选 Chrome 设置的方式。该 API 适用于 Windows 和 Mac 的所有当前版本的 Chrome。

首页、搜索服务提供商和启动页

以下示例说明了如何在扩展程序清单中修改首页搜索提供方启动页。Settings API 中使用的任何网域都必须由发布扩展程序的同一开发者帐号验证(通过 Google Search Console)。请注意,如果您验证某个网域(例如 https://example.com)的所有权,则可以在您的扩展程序中使用任何子网域或网页(例如 https://app.example.com 或 https://example.com/page.html)。

如果使用设置覆盖权限,同时请求任何其他功能或权限,则违反了我们的单一用途政策。当 Chrome 检测到某款产品可能违反了我们的单一用途政策时,会向用户显示一个确认对话框。如果扩展程序仅允许自己修改一项设置,而不寻求其他功能或权限,则系统不会显示确认对话框。

这适用于 Chrome 107 及更高版本。

{
  "name": "My extension",
  ...
  "chrome_settings_overrides": {
    "homepage": "https://www.homepage.com",
    "search_provider": {
        "name": "name.__MSG_url_domain__",
        "keyword": "keyword.__MSG_url_domain__",
        "search_url": "https://www.foo.__MSG_url_domain__/s?q={searchTerms}",
        "favicon_url": "https://www.foo.__MSG_url_domain__/favicon.ico",
        "suggest_url": "https://www.foo.__MSG_url_domain__/suggest?q={searchTerms}",
        "instant_url": "https://www.foo.__MSG_url_domain__/instant?q={searchTerms}",
        "image_url": "https://www.foo.__MSG_url_domain__/image?q={searchTerms}",
        "search_url_post_params": "search_lang=__MSG_url_domain__",
        "suggest_url_post_params": "suggest_lang=__MSG_url_domain__",
        "instant_url_post_params": "instant_lang=__MSG_url_domain__",
        "image_url_post_params": "image_lang=__MSG_url_domain__",
        "alternate_urls": [
          "https://www.moo.__MSG_url_domain__/s?q={searchTerms}",
          "https://www.noo.__MSG_url_domain__/s?q={searchTerms}"
        ],
        "encoding": "UTF-8",
        "is_default": true
    },
    "startup_pages": ["https://www.startup.com"]
   },
   "default_locale": "de",
   ...
}

自定义值

可以通过以下方式自定义清单中的值:

  • search_providerhomepagestartup_pages 属性的所有值都可以使用 chrome.i18n API 进行本地化。
  • 对于外部扩展程序,可以使用注册表项对 search_providerhomepagestartup_pages 网址值进行参数化。在 "update_url" 键旁边创建一个新的注册表条目(请参阅此处的说明)。键名为 "install_parameter",值为任意字符串:

    {
      "update_url": "https://clients2.google.com/service/update2/crx",
      "install_parameter": "Value"
    }
    

    清单网址中所有出现的子字符串 "__PARAM__" 都将替换为 "install_parameter" 值。如果 "install_parameter" 不存在,则会移除出现的 "__PARAM__"。请注意,主机名中不能包含 "__PARAM__"。它必须位于网址中第一个“/”之后。

参考

扩展程序可以替换清单中的以下一个或多个属性:

alternate_urls(字符串数组,可选)
search_url. 之外,还可使用的网址格式列表
encoding(字符串,可选)
用于搜索字词的编码。如果您没有设置 prepopulated_id,则必须执行此操作。
favicon_url(字符串,可选)
搜索引擎的图标网址。如果您没有设置 prepopulated_id,则必须执行此操作。
homepage(字符串,可选)
首页的新值。
image_url(字符串,可选)
搜索引擎用于图片搜索的网址。如果您不这样做,则表示引擎不支持图片搜索。
image_url_post_params(字符串,可选)
image_url 的 post 参数。
is_default(布尔值,必需)
指定是否应将搜索服务提供商设置为默认搜索引擎。
keyword(字符串,可选)
搜索引擎的多功能框关键字。如果您没有设置 prepopulated_id,则必须执行此操作。
name(字符串,可选)
向用户显示的搜索引擎的名称。如果您没有设置 prepopulated_id,则必须执行此操作。
prepopulated_id(整数,可选)
Chrome 内置搜索引擎的 ID。
search_provider(对象,可选)
搜索引擎。
search_url(字符串,必需)
搜索引擎使用的搜索网址。
search_url_post_params(字符串,可选)
search_url 的 post 参数。
startup_pages(字符串数组,可选)
一个长度为 1 的数组,其中包含将用作启动页的网址。
suggest_url(字符串,可选)
搜索引擎用于获取建议的网址。如果未使用此属性,则引擎不支持建议。
suggest_url_post_params(字符串,可选)
suggest_url 的 post 参数。