以编程方式卸载/删除 Firefox 扩展?

2024-01-19

有没有办法以编程方式卸载 Firefox 扩展。如果是 - 是否可以从其他扩展执行此脚本?


  1. 使用以下方式获取附加组件的参考AddonManager.getAddonByID https://developer.mozilla.org/en-US/Add-ons/Add-on_Manager/AddonManager#getAddonByID%28%29
  2. 检查附加组件是否可以卸载(例如,系统范围的附加组件不能被用户正常卸载,但可以禁用),通过检查PERM_CAN_UNINSTALL flag.
  3. Call Addon.uninstall() https://developer.mozilla.org/en-US/Add-ons/Add-on_Manager/Addon#uninstall%28%29.

示例代码(您可能需要添加适当的错误处理等):

Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID("some@id", function(addon) {
  if (!addon) {
    // Add-on not present
    return;
  }
  if (!(addon.permissions & AddonManager.PERM_CAN_UNINSTALL)) {
    // Add-on cannot be uninstalled
    return;
  }
  addon.uninstall();
  if (addon.pendingOperations & AddonManager.PENDING_UNINSTALL) {
    // Need to restart to finish the uninstall.
    // Might ask the user to do just that. Or not ask and just do.
    // Or just wait until the browser is restarted by the user.
  }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式卸载/删除 Firefox 扩展? 的相关文章

  • createHTMLNotification() 替换

    我创建了一个 Chrome 扩展程序 其中使用createHTMLNotification 在所有内容之上显示一个窗口 然而 从 Chrome 28 开始 谷歌决定放弃createHTMLNotification 完全 为什么 谷歌 为什么
  • Angular UI 模式的范围问题

    我无法理解 使用角度 UI 模式的范围 虽然这里不是很明显 但我已经正确设置了模块和所有内容 据我所知 但这些代码示例尤其是我发现错误的地方 index html 其中重要部分 div class btn group div
  • 显示具有多个父代的 D3 树

    我目前有this http bl ocks org mbostock 4339083图已实现 我希望在描述具有多个父节点的子节点时保持结构和可折叠性 有没有办法做到这一点 我研究了力图 但我也想保留一组层次结构 这意味着 1 级的父级可以有
  • 位置特征检测:固定

    我正在尝试找到一个脚本来检测设备是否放置position fixed元素相对于视口而不是整个文档 目前 标准桌面浏览器和 Mobile Safari 适用于 iOS 5 都是这样做的 而 Android 设备则相对于整个文档放置固定元素 我
  • .push() 将多个对象放入 JavaScript 数组中返回“未定义”

    当我将项目添加到beats数组然后console log用户时 我得到了数组中正确的项目数 但是当我检查 length 时 我总是得到 1 尝试调用索引总是会给我 未定义 如下所示 Tom beats 1 我想我错过了一些明显的东西 但这让
  • 使用 Node.js 构建网站的最佳实践

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想知道如何使用 Node js 从头开始 开发一个网站 我明白我怎么能possibly
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 为什么 window 与 Internet Explorer 中的 window.self 不同?

    关于我如何遇到这个问题有一个复杂的背景故事 但为什么self属性不完全等于窗口本身 在 Safari 和 Firefox 及其朋友中 结果如我所料 gt window window self true gt window window se
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • IE 中的 XPath 查询使用从零开始的索引,但 W3C 规范是从一开始的。我应该如何处理差异?

    问题 我正在转换目前仅适用于 Internet Explorer 的相对较大的 Javascript 代码 以便使其也适用于其他浏览器 由于代码广泛使用 XPath 我们做了一些兼容性功能以使事情变得更容易 function selectN
  • JavaScript eval("{}") 返回行为?

    根据ECMA 262 规范 http www ecma international org publications files ECMA ST Ecma 262 pdf 以下语句返回1 eval 1 eval 1 eval 1 var a
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 用于选择特定 div 中具有特定类的锚元素的 jQuery 选择器是什么

    我有一些这样的代码 我想选择每个 a 带有类的标签status在 div 中foo div a class status a div 你可以这样做 foo find status a
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo

随机推荐

  • OpenMp 与 IOS/Android 的兼容性

    我正在尝试做什么 我正在研究C c 为所有平台构建产品的代码 我操作系统 Android Windows 移动 桌面 Mac Linux 到目前为止我做了什么 是的 有许多在线链接讨论 OpenMp 与不同处理器和操作系统的兼容性 但很难从
  • xmpp框架iOS新用户注册方法

    我已经开发了适用于 iOS 的 XMPP 聊天客户端 现在我正在研究如何从 iOS 本身进行新用户注册 任何人都可以帮助注册新用户的方法 因为它需要与服务器通信并将用户名和密码存储到服务器数据库中 请帮帮我 我已经搜索了两天了 NSMuta
  • cursor.fetchone() 返回 None 但数据库中的行存在

    我正在用 python 编写一个与 MySQL 数据库交互的程序 对于 sql 查询 我使用 MySQLdb 问题是fetchone 返回 None 但通过数据库浏览器我可以看到that行存在 这段代码 query SELECT FROM
  • 如何使用Python库生成后缀树? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要可以构建后缀树 特别是广义后缀树的Python库 你能给我推荐一些图书馆吗 谢谢 请参阅以下库
  • 在 JApplet 上运行的 JPanel

    我正在设计一个 JApplet 基本上这个小程序将允许用户绘制二次方程图 并插入 x 轴和 y 轴的范围 但要达到这一目标 还有很多工作要做 我仍处于设计界面的阶段 这是我的代码 import java awt Dimension impo
  • Spring启动-配置EntityManager

    我正在使用Google guice在我的项目中 现在我尝试将框架转换为SpringBoot完全 我配置了 Beanpersistence xml like below in Autowired Bean name transactionMa
  • Java awt.Robot:CTRL+ALT+DEL 未调出所需的屏幕

    我最近刚刚发现 awt Robot 库 我很高兴能够使用它 我以为我应该对我的朋友开个小恶作剧 让机器人按控制 Alt 删除按锁定计算机按钮 但我无法让程序调出控制 Alt 删除屏幕 这是我的代码 import java awt impor
  • 构建发布时出现颤动警告

    当我尝试构建 release 我的应用程序时 我不断收到这些红色警告 尝试扑干净 flutter clean cache 没有任何作用 所有包都是最新的 我的构建 Gradle buildscript ext kotlin version
  • 高效地将字节数组转换为十进制

    如果我有一个字节数组并且想要转换该数组的连续 16 字节块 其中包含 net 的表示形式Decimal 转化为适当的Decimalstruct 最有效的方法是什么 在我正在优化的情况下 以下代码在我的分析器中显示为最大的 CPU 消耗者 p
  • 如何在.NET Framework 3.5上使用Stream.CopyTo?

    我找到了上传代码 该代码包含Stream CopyTo method Example file Stream CopyTo requestStream NET Framework 4 0 如何将 file Stream 复制到 reques
  • 比较 list 类型的 Python 字典值,看看它们是否按顺序匹配

    prefs s1 a b c d e s2 c d e a b s3 a b c d e s4 c d e b e 我有一本字典 我想比较每个键的值 类型 列表 以查看它们是否按该顺序存在 因此 本质上我试图迭代每个键值对 并将列表类型的值
  • 在 Android 中从 Facebook 检索用户名和性别

    这就是我检索存储在共享首选项中的信息 然后比较用户名和密码是否存在的方法 如果用户登录 我可以显示另一个活动 SharedPreferences 设置 getSharedPreferences logindetails 0 String u
  • Java 中的悬空线程

    Java 中的悬空线程会发生什么 就像我创建一个应用程序并且它生成多个线程一样 其中一个线程未完成 主程序在此之前完成 这条悬空的线会发生什么 它会无限地留在线程池中还是 JVM 将在阈值时间段后杀死线程 这取决于线程是否被标记为 守护进程
  • 在 char 中分配多个字符

    为什么这个程序给出输出 y include
  • 如何对结构体数组进行排序

    如何按项目名称的字母顺序对 oo 结构数组进行排序 oo struct Item Quill Ink Pen Pencil Cost 10 2 1 我尝试使用 sort 函数但它不起作用 谢谢 首先索引您的字段 在本例中oo Items它返
  • jQuery 泄漏问题已解决,但为什么呢?

    我正在开发一个包含大量 JavaScript 的大型企业应用程序 够了 我不可能遍历并修复过去 5 年开发中创建的所有小循环引用 在研究解决方案时 我遇到了这个小的 jQuery 黑客 补丁 http kossovsky net index
  • Java邮件超时和连接超时处理

    我正在使用 JavaMail 将电子邮件请求发送到 SMTP 服务器 我想同时设置 邮件 smtp 连接超时 and 邮件 smtp 超时 我的代码中的属性 以编程方式 我想在以下情况下捕获两者timeout and or 连接超时Java
  • 获取过时的 Composer 软件包列表

    我想获取过时的软件包列表 这些软件包将在我发布时更新composer update 作曲家有这样的功能吗 如果没有 有没有办法做到这一点 有或没有作曲家 Update Since Composer v1 1 2016 年 5 月 https
  • Django - postgres:如何在 JsonB 字段上创建索引

    我想允许在 ID 上的 JsonB 字段上建立索引 该 ID 深入到我们 Django 项目中的 json 数据的几个级别 JSONB 数据如下所示 foreign data some key val src data VEHICLE ti
  • 以编程方式卸载/删除 Firefox 扩展?

    有没有办法以编程方式卸载 Firefox 扩展 如果是 是否可以从其他扩展执行此脚本 使用以下方式获取附加组件的参考AddonManager getAddonByID https developer mozilla org en US Ad