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 上可以使用快捷键或菜单)来与扩展交互。如果启用该权限,那么将会为当前标签页的域名授予标签页权限。
Safari Extension 扩展插件中关于权限的二三事(例如设置权限、权限类型等)相关推荐
- Chrome扩展插件、360浏览器扩展插件中遇到的问题
Chrome扩展插件.360浏览器扩展插件中遇到的问题 问题前瞻 script标签的问题 谷歌官方API获取当前页面URL的问题 前言: 因为朋友的请求,所以为他做一个小Chrome扩展,因为之前是没 ...
- 服务器2003添加共享文档权限,Windows2003使用命令行设置共享权限与安全权限心得...
Windows2003使用命令行设置共享权限与安全权限心得 Windows2003安装计算机等级考试系统,按系统说明对考试服务器进行安装.在安装过程中,需在服务器上创建大量考试用户和考生文件夹,且需对 ...
- Linux:Root(管理员)新建用户,并赋普通用户文件夹的权限,同时普通用户设置文件权限仅自己能访问
1.新建用户 (1)为了获取创建用户的权限,切换为root用户 peng@ubuntu:~$ sudo su (2)添加一个新用户(如用户名为xyz) root@ubuntu:/home/peng# ...
- linux命令 创建目录权限,linux创建用户并设置目录权限
[TOC] <linux创建用户并设置目录权限>首发牧马人博客转发请加此提示 常用命令 用户列表文件:/etc/passwd 用户组列表文件:/etc/group 查看系统中有哪些用户:c ...
- python 权限管理 mongodb_MongoDB为用户设置访问权限
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- thinkphp中配置信息的二维数组设置与使用
有时候配置信息是二维数组 1.配置 <?php return array (// 阿里大鱼短信配置'dayu_appkey'=>'xxx','dayu_secretKey'=>'xx ...
- chrome扩展插件二:chrome插件开发入门
一个扩展插件由不同的组件构成.组件包括backgroud script.content script.选项页.ui元素及其它逻辑文件.插件的开发技术包括HTML,CSS及javascript.扩展插件 ...
- 【Visual Studio 2019】上传代码到 GitHub ( 16.9.2 版本 | 安装 GitHub 扩展插件 | 创建 Git 仓库 | 推送到远程仓库 )
文章目录 一.安装 GitHub 扩展插件 二.创建 Git 仓库 三.推送到远程仓库 今天将 Visual Studio 2019 从 16.3.6 版本升级到了 16.9.2 版本 , 发现相关操 ...
- Chrome如何安装第三方扩展插件(crx)
Chrome安装第三方扩展插件(crx) 前言 新版本Chrome浏览器会对非Chrome应用商城的扩展应用安装进行限制,安装后会提示"该扩展程序未列在 Chrome 网上应用店中,并可能是 ...
最新文章
- 计算机机房建设监理,机房工程建设监理工作要点讲解
- primefaces_轻量级Web应用程序框架:PrimeFaces(JSF)+ Guice + MyBatis(第2部分)
- AIX操作命令记录中
- 柱状图中xy轴怎么出现_如果制砂机设备在工作中出现堵料现象该怎么办?
- _linux文本过滤grep基础命令介绍
- 最大的连续子段和的O(n)解法
- 【前端学习笔记】2015-09-02~~~~ 关于filter()匹配的使用
- Hibernate工作流程及与 MyBatis的比较
- SDOI 2014 数表 题解
- DS树--找出直系亲属
- xxxx cannot be opened for xxxx
- 产品原型绘制要求与规范
- Kanzi学习之路(7):kanzi的资源预加载
- 51nod 1113 矩阵快速幂 (矩阵的n次方)
- 林业大学计算机专业排名2019,2021年北京林业大学最新排名 全国最新排名
- 将python代码打印成pdf
- Win10 LTSC 离线安装 Microsoft 照片应用
- A_Prn_Barcode 应用code128码的 注意事项
- 《快学scala第二版》第一章 练习答案
- 2021-06-26进程的优先级与LAMP项目部署实战