本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/02/09/WebExtension%E4%B8%AD%E7%9A%84manifest-json/
摘要
本文主要讲述了:
- chrome_settings_overrides
- chrome_url_overrides
- permissions
正文
chrome_settings_overrides
homepage
设置主页
示例:
1 | { |
search_provider
设置搜索引擎
image_url
图片搜索的 URL 模板
注:如果不设置image_url
,那么鼠标右键对准图片时,上下文菜单中不会出现搜索图片
image_url_post_params
以 POST 形式提交的图片搜索参数
{google:imageThumbnail}
:略缩图{google:imageOriginalWidth}
原始图片的宽度{google:imageOriginalHeight}
原始图片的高度
注:
- 通过 Fiddler 抓包得知:
{google:imageThumbnail}
为没有文件名的二进制文件,可以近似看作:FormData
实例中,filename
为空字符串的Blob
实例或File
实例 - 由于百度的以图搜图接口必须提供
filename
,因此该接口无法作为image_url
is_default
- 若为
false
,则彻底丧失作为默认搜索引擎的可能,且使用该搜索引擎之前需要手动激活 - 若为
true
,则使用search_provider.keyword
之前需要手动激活
示例:
1 | { |
chrome_url_overrides
注:同一个扩展能且只能重写以下页面中的一个
bookmarks
history
newtab
示例:用扩展中的本地页面重写新标签页
1 | { |
permissions
host 许可
示例:匹配 URI 方案为http
、https
、ws
、wss
的 URL
1 | { |
示例:匹配所有的 URL
1 | { |
activeTab 许可
如果扩展获得了activeTab
许可,当用户和扩展进行以下交互时:
- 用户点击扩展的 browserAction 或 pageAction
- 用户点击扩展在上下文菜单中注册的项
- 用户使用扩展注册的快捷键
在当前标签页,扩展会被授予额外的特权:
- 针对当前标签页使用
browser.tabs.insertCSS()
、browser.tabs.removeCSS()
、browser.tabs.executeScript()
- 获得标签页信息时,额外获得当前标签页的
tab.url
、tab.title
、tab.favIconUrl
设计activeTab
许可的目的,就是为了尽可能安全地授予许可
应用场景:
- 虽然授予
host
许可就能针对任意标签页使用browser.tabs.insertCSS()
、browser.tabs.removeCSS()
、browser.tabs.executeScript()
,但扩展实际上只需要针对当前页使用 - 虽然授予
host
许可或tabs
许可就能查询到任意标签页的tab.url
、tab.title
、tab.favIconUrl
,但是扩展实际上只需要当前页的
Chrome
在 Chrome 中,即使扩展没有申请activeTab
许可,一旦用户和扩展进行以下交互,在回调函数中,扩展也能额外获得当前标签页的tab.url
、tab.title
、tab.favIconUrl
:
- 用户点击扩展的 browserAction 或 pageAction
- 用户点击扩展在上下文菜单中注册的项
- 用户使用扩展注册的快捷键
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/02/09/WebExtension%E4%B8%AD%E7%9A%84manifest-json/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/02/09/WebExtension%E4%B8%AD%E7%9A%84manifest-json/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。