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 扩展插件中关于权限的二三事(例如设置权限、权限类型等)相关推荐

  1. Chrome扩展插件、360浏览器扩展插件中遇到的问题

    Chrome扩展插件.360浏览器扩展插件中遇到的问题 问题前瞻 script标签的问题 谷歌官方API获取当前页面URL的问题 前言: 因为朋友的请求,所以为他做一个小Chrome扩展,因为之前是没 ...

  2. 服务器2003添加共享文档权限,Windows2003使用命令行设置共享权限与安全权限心得...

    Windows2003使用命令行设置共享权限与安全权限心得 Windows2003安装计算机等级考试系统,按系统说明对考试服务器进行安装.在安装过程中,需在服务器上创建大量考试用户和考生文件夹,且需对 ...

  3. Linux:Root(管理员)新建用户,并赋普通用户文件夹的权限,同时普通用户设置文件权限仅自己能访问

    1.新建用户 (1)为了获取创建用户的权限,切换为root用户 peng@ubuntu:~$ sudo su (2)添加一个新用户(如用户名为xyz) root@ubuntu:/home/peng# ...

  4. linux命令 创建目录权限,linux创建用户并设置目录权限

    [TOC] <linux创建用户并设置目录权限>首发牧马人博客转发请加此提示 常用命令 用户列表文件:/etc/passwd 用户组列表文件:/etc/group 查看系统中有哪些用户:c ...

  5. python 权限管理 mongodb_MongoDB为用户设置访问权限

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. thinkphp中配置信息的二维数组设置与使用

    有时候配置信息是二维数组 1.配置 <?php return array (// 阿里大鱼短信配置'dayu_appkey'=>'xxx','dayu_secretKey'=>'xx ...

  7. chrome扩展插件二:chrome插件开发入门

    一个扩展插件由不同的组件构成.组件包括backgroud script.content script.选项页.ui元素及其它逻辑文件.插件的开发技术包括HTML,CSS及javascript.扩展插件 ...

  8. 【Visual Studio 2019】上传代码到 GitHub ( 16.9.2 版本 | 安装 GitHub 扩展插件 | 创建 Git 仓库 | 推送到远程仓库 )

    文章目录 一.安装 GitHub 扩展插件 二.创建 Git 仓库 三.推送到远程仓库 今天将 Visual Studio 2019 从 16.3.6 版本升级到了 16.9.2 版本 , 发现相关操 ...

  9. Chrome如何安装第三方扩展插件(crx)

    Chrome安装第三方扩展插件(crx) 前言 新版本Chrome浏览器会对非Chrome应用商城的扩展应用安装进行限制,安装后会提示"该扩展程序未列在 Chrome 网上应用店中,并可能是 ...

最新文章

  1. 计算机机房建设监理,机房工程建设监理工作要点讲解
  2. primefaces_轻量级Web应用程序框架:PrimeFaces(JSF)+ Guice + MyBatis(第2部分)
  3. AIX操作命令记录中
  4. 柱状图中xy轴怎么出现_如果制砂机设备在工作中出现堵料现象该怎么办?
  5. _linux文本过滤grep基础命令介绍
  6. 最大的连续子段和的O(n)解法
  7. 【前端学习笔记】2015-09-02~~~~ 关于filter()匹配的使用
  8. Hibernate工作流程及与 MyBatis的比较
  9. SDOI 2014 数表 题解
  10. DS树--找出直系亲属
  11. xxxx cannot be opened for xxxx
  12. 产品原型绘制要求与规范
  13. Kanzi学习之路(7):kanzi的资源预加载
  14. 51nod 1113 矩阵快速幂 (矩阵的n次方)
  15. 林业大学计算机专业排名2019,2021年北京林业大学最新排名 全国最新排名
  16. 将python代码打印成pdf
  17. Win10 LTSC 离线安装 Microsoft 照片应用
  18. A_Prn_Barcode 应用code128码的 注意事项
  19. 《快学scala第二版》第一章 练习答案
  20. 2021-06-26进程的优先级与LAMP项目部署实战

热门文章

  1. 分布式 | 如何通过 dble 的 split 功能,快速地将数据导入到 dble 中
  2. 用js实现登录的简单验证
  3. 北京:一个大学生每年要花多少钱
  4. html图片底部显示,html – 将背景图像保持在底部
  5. 基于RGB-D相机的三维重建总览:静态与动态三维重建
  6. Rescue-Prime hash STARK
  7. 羊毛党 青龙-阿东和非阿东脚本仓库大全
  8. 《Windows 8 权威指南》——1.2 Windows 8平板模式下IE浏览器网页
  9. 论文翻译3-视频流SR技术分析
  10. 单摆测重力加速度的算法(Python)