Safari Extension 扩展插件中关于权限的二三事(例如设置权限、权限类型等)

Safari Extension 扩展插件的权限相关的内容大致分为下面几个方面:

用户要掌控扩展(Users are in control)

Safari Extension 扩展插件是要在用户控制下的,不能想干嘛就干嘛,因此扩展只有在用户进行互动之后才会运行。在第一次运行之前,扩展图表旁边会有一个提醒,点击会弹出一个标记来帮助指导用户使用。如下:
请添加图片描述

激活后的扩展图标会变成蓝色的。
请添加图片描述

可以根据各个网站来授予权限(Permissions are per-website)

Safari Extension 扩展插件的权限是可以针对不同网站来授予的,这样用户就可以自行决定在一些网站中才能使用扩展,或者在一些网站中不使用扩展。(开发者也可以针对不同的网站来设置权限,这里不赘述,下一节中细说)
点击下图红色方框中的“编辑网站”按钮,就可以看到已配置该扩展的网站和权限。(这里建议各位读者尝试将默认生成项目中的example.com改成*来匹配所有网站,然后点击激活扩展之后,再访问几个网站看看下面的窗口会变成什么样,这样就更好理解了
请添加图片描述
请添加图片描述

四种权限类型

开发者设置或调整这些权限类型时,需要在项目的 manifest.json 文件中进行相关操作。

脚本插入权限(Script injection Permission)

脚本插入权限运行对用户当前浏览的界面插入 JavaScript 脚本和 CSS 样式表。
json 中的格式如下:

//脚本插入权限
"content_scripts": [{
	"js": [ "content.js" ],
	"css": [ "content.css" ],
	"matches": [ "*://example.com/*" ]
}],

其中:

  • "js"表示如果当前页面在匹配的网站,那么插入 content.js 脚本。
  • "css"表示如果当前页面在匹配的网站,那么插入 content.css 样式表。
  • "matches"表示匹配域名的正则表达式,通过正则表达式来判断当前页面是否在允许插入脚本的域名中。

如果当前页面在匹配的域名中,那么用户就可以点击启用脚本来插入脚本或样式表了。

隐式权限(Implicit Permission)

在默认生成的扩展项目的 manifest.json 文件中,可以看到这么一段代码(因为放在最后所以实际上是没有最后的逗号,的):

"permissions": [ ],

方括号[ ]中就是用于填写隐式权限的。下面举个例子:

"permissions": [ 
	//第一部分
	"alarms","clipboardWrite", "menus", "nativeMessaging", "storage",

	//第二部分
	"cookies", "tabs", "webNavigation"
],

第一部分是非敏感的权限,它们不需要额外的特权;第二部分是敏感的权限,因为它们具有网站标识数据,例如 Cookies。

隐式权限的原理是,当你访问 API 的时候,它会等待回调和数据,用户和扩展交互之后会看到询问权限的提示(也就是用户来提出权限申请)。在用户允许之后,回调会被执行,数据也会返回,所有允许的操作都会立刻执行。

显式权限(Explicit Permission)

显式权限之所以称之为“显式”是因为扩展本身会索取权限,并且索取权限的提示永远以模态形式,而不会添加任何标记。这是因为索取权限的是扩展本身,而不是用户。

这个权限需要在 background.js 文件中写入,如下:

const permissionsToRequest = {
	permissions: ["tabs"],
	origins: ["*://example.com/*"]
}
browser.permissions.request(["permissionsToRequest"]);
活跃标签页权限(Active Tab Permission)

该权限填写在"permissions": [ ]中,如下:

"permissions": [ 
	"activeTab"
],

这是一种特殊情形,如果此时您不想显示提醒,那么就可以使用活跃标签页。用户需要通过工具栏(Mac 上可以使用快捷键或菜单)来与扩展交互。如果启用该权限,那么将会为当前标签页的域名授予标签页权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值