清单 - 网络可访问的资源

一个字符串数组,用于指定预计可在网页上下文中使用的打包资源的路径。这些路径相对于软件包根目录,可能包含通配符。例如,某个为 example.com 构建某个自定义界面而注入内容脚本的扩展程序会允许该界面所需的任何资源(图片、图标、样式表、脚本等),如下所示:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

然后,这些资源将可通过网址 chrome-extension://[PACKAGE ID]/[PATH](可使用 extension.getURL 方法生成)在网页中提供。列入许可名单的资源通过适当的 CORS 标头提供,因此可通过 XHR 等机制使用。

从 Web 来源到扩展程序资源的导航将被屏蔽,除非该资源被列为可通过 Web 访问。请注意以下极端情况:

  • 当扩展程序使用 webRequestdeclarativeWebRequest API 将公共资源请求重定向到无法通过 Web 访问的资源时,此类请求也会被屏蔽。
  • 即使无法通过 Web 访问的资源归重定向扩展程序所有,上述情况也适用。

内容脚本本身无需列入许可名单。

在清单版本 2 之前,扩展程序中的所有资源都可以从网络上的任何页面访问。这会导致恶意网站对用户已安装的扩展程序进行指纹识别,或利用已安装的扩展程序中存在的漏洞(例如 XSS bug)。将可用性限制为明确旨在可通过 Web 访问的资源,可以最大限度地减少可用的攻击面,并保护用户的隐私。

默认可用性

使用 manifest_version 2 或更高版本的软件包内的资源默认处于屏蔽状态,必须列入许可名单才能通过此属性使用。

使用 manifest_version 1 的软件包内的资源默认可用,但if您设置了此属性,它将被视作所有列入许可名单资源的完整列表。未列出的资源将被屏蔽。