不能使用 chrome_settings_overrides 来覆盖搜索提供程序

Luk*_* Vo 2 google-chrome google-chrome-extension

manifest.json按照Google 的指示,我在我的 中有以下声明:

{
  ...
  "chrome_settings_overrides": {
    "search_provider": {
      "name": "My Name",
      "keyword": "My Keyword",
      "favicon_url": "icon32.png",
      "search_url": "http://example.com/Home/Search?keyword={searchTerms}",
      "encoding": "UTF-8",
      "is_default": true
    }
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,我根本无法加载带有该部分的清单(删除它会使它起作用)。收到的消息是:

无法从以下位置加载扩展程序:D:\Chrome\SearchExtensions 'chrome_settings_overrides' 的空字典。

我究竟做错了什么?这样做的正确方法是什么?

wOx*_*xOm 6

文档说"favicon_url"

如果prepopulated_id设置了,则只能省略。

并且"favicon_url" 必须是一个完全合格的 http 或 https url 根据 Chromium源代码

if (!CreateManifestURL(*overrides->search_provider->favicon_url)) {
  *error = ...
.........................................
// CreateManifestURL function:
if (!manifest_url->is_valid() ||
    !manifest_url->SchemeIsHTTPOrHTTPS())
  return std::unique_ptr<GURL>();  // <<<< returns an empty value that sets the error
Run Code Online (Sandbox Code Playgroud)