从选项页面更新chrome扩展清单权限
Update chrome extension manifest permissions from options page
我正在尝试从选项页面更新chrome扩展清单文件中的权限。基本上,用户应该能够输入要运行的扩展的url,并且该url将在扩展清单文件中更新。我目前正在使用chrome.storage.sync存储我的所有选项,以便在多个文件中使用。我正在寻找一个安全的解决方案,只给选择的网址访问。有什么建议吗?
这是不可能的(更新清单)。
然而,您解释的特定用例是:
- 列出"允许"的网站
- 当按下按钮调用扩展时,如果允许网站,则注入一个执行某些操作的内容脚本
在这种情况下,"activeTab"
权限和编程注入应该可以解决您的问题。
- 您没有在清单中声明任何内容脚本。这样可以确保代码只在需要的时候运行
- 您没有在清单中声明任何主机权限。在按"浏览器操作"时,您的扩展将仅在当前选项卡上工作
- 您向用户询问允许的URL,并将其存储在
chrome.storage
中 - 当使用浏览器操作调用扩展时,您可以查询当前活动的选项卡,并将获得其URL(因为具有
"activeTab"
权限)。- 然后,您的逻辑将其与存储的白名单URL进行比较
- 如果匹配,则使用
chrome.tabs.executeScript
注入内容脚本 - 如果没有匹配-什么都不做,或者以某种方式要求用户确认将新域列入白名单
以下是一些示例代码:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var currentTab = tabs[0];
// Pseudocode
if (whitelisted(currentTab.url)) {
chrome.tabs.executeScript(currentTab.id, {file: "content.js"});
} else {
// Do nothing or show some warning
}
});
或者,您可以查看可选权限API。
相关文章:
- 在流星上使用微信js-sdk时出现拒绝权限错误
- 从选项页面更新chrome扩展清单权限
- 从应用程序脚本检查谷歌网站访问权限
- 在Nodejs中Express输入DEBUG=app时权限被拒绝/bin
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 如何将权限/授权数据传递到客户端Javascript
- 根据HTML文件名授予web服务器写入权限
- 如何在javascript清单中获取地理位置权限
- 如何在My chrome扩展中获取其他chrome扩展的DOM访问权限
- 如何在标志中检查权限
- 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误
- 为什么在中声明具有外部访问权限的变量
- webkitspeechrecognition不再提示获得权限
- AWS Lambda上的权限问题,可以't派生子进程
- 使用对数据库的写入权限保护文件
- 活动在magento中记录用户角色和权限
- 带有Cordova的iPhone上的位置权限警报
- 您没有权限调用msgbox
- 将字符串文件类型/权限转换为数字
- 尝试单击网页按钮,得到“错误 70 权限被拒绝”