问题标签 [firefox-addon-webextensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 打开一个选项卡并在 firefox webextension 中向它发出 POST 请求
我尝试将使用低级 SDK API 的 Firefox插件迁移到 WebExtension,并且在某些时候我想将 url 编码的数据发布到新选项卡。
使用低级 API 可以通过以下代码:
但我还没有找到等效的 WebExtension。
是否有可能或唯一的解决方案是创建一个表单并在js中提交?
javascript - Firefox WebExtension CSP 问题
我正在尝试将 Chrome 扩展程序转换为 Firefox WebExtension。到目前为止它工作得很好,但由于某种原因,我遇到了 GitHub 的问题。我的扩展在页面的一侧添加了一个小 div,但是当我尝试将其添加到 GitHub 时,我得到了错误
内容安全策略:页面的设置阻止了自身资源的加载(“script-src https://assets-cdn.github.com ”)。
我不知道为什么,因为在我的manifest.json
我已经将 CSP 设置为
我将不胜感激有关此问题的任何建议。它在 Chrome 上运行良好。
firefox-addon - 如何使用新的 WebExtensions api 更改 firefox 首选项(about:config)?
要使用旧 API 更改设置 (about:config),您只需执行以下操作:
对于 Firefox 的新 WebExtensions 附加组件,我找不到任何关于该主题的内容。还不可用吗?
firefox - 签署和提交 Firefox WebExtension
我能够将我的 chrome 扩展(https://chrome.google.com/webstore/detail/clipmystuff/ponkmhjofooonokejbbmladaomkbbgcd)移植到 Firefox EebExtension,在 Firefox(46)中一切正常,但我无法将扩展发布到Mozilla 商店。在附加开发者中心上传我的扩展后,它卡在第 2 步。
第二步:https ://addons.mozilla.org/en-US/developers/addon/submit/2
从过去 4 小时开始,它卡在第 2 步,我还需要为 WebExtension 做些什么吗?
javascript - Firefox 扩展:在文件上调用 executeScript 但不是代码时出错
当该选项卡打开时,我正在尝试在新选项卡中执行脚本。
在我的后台脚本中,我有:
在 contentScript.js 中:
由此我得到以下错误:
如果我只是执行代码而不是调用 js 脚本,例如:
这不会导致错误。知道是什么原因造成的吗?
firefox-addon - 带有 Firefox 同步 1.1 的 WebExtensions
我正在尝试更新基于 XUL 和 XPCOM 的旧 Firefox 插件并在 WebExtention 中重新实现它。这个新的附加组件将使用firefox 同步服务器 1.1安全地交换一些信息,基于此。我不能使用 firefox 同步服务器 1.5,因为它不使用 J-PAKE。我已经能够很好地与服务器交谈,但现在在协议的第二步上绊倒了。
移动/桌面从随机弱密钥(4 个字符 a-z0-9)和频道 ID 生成 PIN,计算并上传 J-PAKE msg 1. v2 的新功能:为了防止重试时重复上传,If-None-匹配: * 标头已指定。这样可以确保仅在通道为空时才上传消息。如果不是,则请求将失败,并显示 412 Precondition Failed,这应该被视为与 200 OK 相同。412 还将包含客户端刚刚上传的数据的 Etag。
问题是旧实现使用了 XPCOM 对象:
负责生成:gx1, gv1, r1, gx2, gv2 and r2
.
有没有办法在WebExtentions中使用 XPCOM 对象?还是我被迫使用带有XPCOM 低级 API 的Add-on SDK?
我曾尝试使用curve25519.js来模拟此处的值,但没有成功。
欢迎任何帮助,谢谢
javascript - 如何在 Webextension 中以正确的权限运行跨域 XHR 请求?
目标:我想开发一个 Firefox Webextension(类似于 Chrome 扩展),在加载之前检测 HTML 和 JavaScript 文件。如果这些文件中有特定内容,将被阻止,否则允许通过。
问题:无法收集具有不同域的文件内容,因为它们抛出“跨域”错误,因为缺少 Access-Control-Allow-Origin 标头。
我读了很多关于这个问题的东西,文档说,如果在 Webextension 清单中设置了权限,则不需要 Access-Control-Allow-Origin 标头。这里引用Mozilla Doc:
使用权限键为您的扩展请求特殊权限。[...] 密钥可以包含三种权限: [...] 主机权限 [...] 主机权限被指定为匹配模式,每个模式标识一组 URL,扩展程序正在为其请求额外权限. 额外的特权包括:XHR 访问 这些来源[...]
我的清单.json:
在这里,我在权限键中有“*://*/*”,这意味着每个网络资源都应该有权限并且不应该发生跨域错误?还是我错了?谁能告诉我,为什么我会收到错误或如何避免它?
我的背景脚本.js:
我的 contentscript.js:
在 contentscript.js 中,我使用 jQuery $.get方法来访问网站内容。我还尝试了 $.ajax和 dataType jsonp,但在这种情况下,我得到了一个无限的访问链,并且脚本尝试无限次加载资源。我完全不明白,为什么会这样,可能是因为我使用了 chrome.webRequest.onBeforeRequest 监听器,如果出现新的连接就会被访问,在这种情况下它会陷入死循环?
在我阅读的Mozilla Doc中,chrome.webRequest.onBeforeRequest 有一个参数 requestBody:
包含 HTTP 请求正文数据。[...] 1. Firefox 不支持“requestBody”选项。
- 这个解决方案将是最好的 => 但它不可用
- 我用权限模式尝试了 $.get => 我得到了 Cross-Origin 错误
- 我用 jsonp 和相同的权限模式尝试了 $.ajax => 我得到了无限循环
所以问题又来了:我如何访问不同域的文件内容而不会出现跨域错误,其中域名是打开的(模式如“*://*/*”)?