【发布时间】:2017-04-01 16:34:26
【问题描述】:
我已经在商店中有一个 chrome 扩展,我需要向其添加更多权限,因为我想将它应用到更多网站。但是将它们放入权限数组会禁用扩展,并且它需要新权限的唯一指示是在汉堡菜单下,这完全没用。
这是原件,由于它位于 content_scripts 对象中,因此似乎具有隐含的“https://mail.google.com”权限:
{
"manifest_version": 2,
"name": "My Extension",
"short_name": "Extension",
"version": "1.5.16",
"description": "Description here",
"homepage_url": "https://test.com/",
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
},
"content_scripts": [
{
"matches": [
"https://mail.google.com/*"
],
"js": [
"injector.js"
],
"css": [
"style.css"
]
}
],
"web_accessible_resources": [
"app.js",
"libs.js"
]
}
在理想情况下,我只需添加额外的“content_scripts”对象,但由于对新网站域的隐含权限,这会禁用扩展。
输入 "optional_permissions": ["https://hangouts.google.com"] 仍然会禁用插件并且不会通知用户。
如果我将任何代码放入后台脚本,请说出以任何方式访问 chrome.tabs 的内容... BOOM!这是隐含的权限,并且扩展程序被禁用。
我应该如何在不禁用扩展程序的情况下获得新权限?请求许可的弹出窗口将是一个完美的解决方案,但这不是我所提供的。
【问题讨论】:
-
其他可选权限不会禁用它。并且没有隐含许可之类的东西,大多数 chrome.tabs 也不需要任何许可。添加背景页面不是问题。
-
但是将新域添加到“content_scripts”会禁用它。也许我把lede埋在这里了,但是当我执行这个简单而最明显的动作时,它完全按照我所说的那样做。使用“optional_permissions”是为了解决这个问题。
-
是的,新的内容脚本会禁用。除了使用可选权限和编程注入之外,您无法真正阻止它。
标签: javascript google-chrome google-chrome-extension permissions