开发的扩展程序准备适配火狐时发现火狐在 mv3 版本里,禁用了 script-src 的外部资源只允许使用 self ,而且还禁止了 blob 。
我的扩展程序的用户认证用的是 clerk 这个服务,这个服务里的代码有很多都是远程 js 和 blob 。
我费劲改了 clerk 的代码把远程 js 改成本地,结果发现还有 blob 的问题,就不知道怎么办了。
没有看到任何社区询问这个问题,现在我开始怀疑是不是我写扩展的思路不对。。。扩展程序的登录是不是不是这么搞,也没有相关的教程和案例可以看。。。
找不到相关知识就很难受。
痛,非常之痛。。。

关了电脑,躺在床上,我突然想到一个问题,他是不是只限制的前端代码,background 里是不是没限制?如果是的话我就把请求都转移到后台的脚本里,然后麻烦一点 message 通信一下。明天看看吧

chrome 的 Manifest v3 好像也这样吧? 不太清楚 问问

MV3 好像就是所有代码都必须在插件包

还-+++

#4 误触了抱歉

建议你专门打开一个标签页让用户登录吧,登完把凭据传到你插件里

安全就是这样的,为了安全,需要牺牲很多便利。自古的经验来看,便利可以让你一时爽,但安全问题可能让你送命。最近南京小区失火新闻可以搜一下,居民们为了方便,违规停电动车,最后死了那么多人。

你直接获取你网站的 cookie 就好了,这样插件里不需要登录。

确实,但肯定有解决方法而且会比你想象的简单

background scripts 没有限制外部请求,可以从 content scripts 发消息到 background 这样来发起请求。可以参考我写的扩展: github.com/kidlj/metword.extension

#8 这事我也在想,但是我不知道插件怎么获取网站的 cookie

#10 非常感谢,我看一下

#11 const result = await browser.cookies.get({ url: "站点 URL", name: "站点 cookie 名称",})需要 cookies 权限

v3 是禁止外部脚本,不是禁止外部请求。具体来说,登录请求代码写在扩展代码包里就可以。同时,在第三方网页发起网络请求有可能触发跨域限制,所以不要用 content script 去发起,用 background script 去发起。

#14 主要是我用了第三方的认证服务的,他们的 sdk 本身就会引用外部脚本。除非我不用 sdk ,只能自己写了。 #2 #14 但是我的 chrome 插件就没有这些问题,也是 mv3 就没关系。就火狐不行。

不可能,mv3 明确说明禁止外部脚本,要么是 chrome bug ,要么是通过插入 document 元素的方式加载且刚好对应网页没有禁止第三方脚本。

不要管火狐不就完了。用的人极少极少。收益不成正比。算是浪费你的时间

#16 不是 content 脚本里,是在 options 页面的。

一直认为针对“电动车、摩托车”的许多限制是不太合理的,禁摩、禁电动车入户等等,都是一纸条文下去就什么都不管了,出了问题就是居民不道德,居民伤天害理。 摩托车有风险,禁,没法出行是吧,电动车不安全是吧,买轿车啊,没地方放车是吧,买个房啊,主打的就是大家都是富裕家庭。对了,买车放家里就可以了,千万别开出门,外面哪有那么多车位。 反正我自己是买了车,但是出行一般是共享单车……所以明明摩托车/电动车可以解决问题,最后各种买买买,巨大支出,年年保险费,实际用的反而是自行车…… 我这边前几个月突然被上门检查,说是查不准用煤气罐热水器,我满脸懵逼,这个也不让用吗,还专门查了很久,找不到同等体验的平替(要么使用不方便,要么安装贼复杂),真的很不喜欢这样子一刀切的玩法。 所以这个电动车入户充电的问题,还是建议搞一些方便居民充电的设施,我这边居民从来不入户充电,很简单啊,因为门口和公司停车处都有电动车充电桩,方便得很,价格也很便宜。 哦对了,也可以像我们这边禁摩一样,直接禁止电动车出行就行了,也能解决问题。

对了,楼上的我看似有点跑题,但是我想说“居民们为了方便,违规停电动车,最后死了那么多人。”这个因果关系是不成立的,实际是“制定规则的部门”为了规范而规范,没有考虑居民实际使用需求,也没有帮助居民解决问题,居民自己也不可能去室外设立充电桩(在我们农村反而没问题,自家掏钱搞一个就是了),导致居民“普遍性违法”,然后才是“死了那么多人”。 很有意思的是,在这个事件中,规则制定人、电动车生产方等等都是无责任的,责任全是消费者的问题,主打的就是一个花钱买罪受,为了方便倾家荡产。

#20 所以你只是在输出情绪,根本没辩证地思考,只想把这个问题归咎为政府及其政策问题,和 op 主题没任何关系

#21 说得对,开香槟咯🍾

请务必救救忠实的火狐用户。

写信给 clerk 这个服务

是的,我的第一反应也是这个。我不在国内,但我都有了一提到电瓶车充电就会着火的印象,看到很多人一看见有人把电瓶车带上楼或者怎么样就去阻止。是电瓶车一充电就 100%爆炸还是容易爆炸还是只在居民楼容易爆炸?那这要么是电瓶的问题要么是供电系统的问题。店里买来的东西在自家充电不是正常吗?似乎大家都习惯了谴责电瓶车主。这就像人人都默认房子装修好了要晾甲醛,为啥新房子就必须有甲醛呢?

相应的功能在 chrome 下能通过吗,你先按照 Chrome v3 的相关文档来开发,最后再考虑兼容性问题。

为什么不用 plasmo , 看看这个 docs.plasmo.com/framework

在你的网页中使用:chrome.runtime.sendMessage 发送消息在 background.js 中使用:chrome.runtime.onMessageExternal.addListener 接收消息 如何实现网页和 Chrome 插件之间的通信 unclechen.github.io/2018/06/09/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BD%91%E9%A1%B5%E5%92%8CChrome%E6%8F%92%E4%BB%B6%E4%B9%8B%E9%97%B4%E7%9A%84%E9%80%9A%E4%BF%A1/ 可以看看这个文章

#27 用了 plasmo 了,它的编译并没有处理这个问题。 #23 哈哈哈,就是因为有个火狐用户和我说想让我做一下兼容,我才开始考虑的。 #24 提过工单了,等工作日看下回复 #28 嗯,谢谢,如果没有其他合适的方案,我就试试这样改造一下

你觉得官方出台限制电动车、摩托车不合理,那请问,很多地方都出台了摩托车要考驾照、买保险,有几个人执行?电动车放楼道里有风险,有几个人规规矩矩地把电动车放到了规定地点?不要总站在一个角度思考问题,请多换位思考。

火狐上架和审核比 Chrome 严格很多曾经在火狐上架过插件插件会请求一个 url 获取数据,更换插件 Options 页面的 Banner 信息 (如果出现啥问题,Banner 才会显示)第一次上架:工程源码上传 审核 通过 上架 没问题过了几个月 有火狐插件审核员对插件有质疑,会收到类似邮件:真的是人工审核,要给项目工程源码,还要回答审核员的问题他们真的懂代码,还可以帮你优化代码 😎Please address the issues raised in the reviewer's notes and inquire about any unclear items. Afterwards, please upload a new version of your add-on at addons.mozilla.org/en-US/developers/addon/fastgithub/versions.To respond, please reply to this email or visit addons.mozilla.org/en-US/developers/addon/fastgithub/versions. If we do not hear from you within 14 day(s) of this notification, these versions will be removed from addons.mozilla.org. Current users of these versions will be unaffected.Thank you for your attention.审核员主要质疑的地方:1. 你的 URL 是否安全,是否会发送有害信息2. 你的服务器是否安全,是否会被 xxx ,通过 URL 给用户发送 xxx 信息,让用户点击请提供服务器安全监测相关证明和以及你如何保障 URL 的安全

请务必救救忠实的火狐用户。

Chrome/Edge/Firefox 我窜着用,楼主太棒了。写拓展/插件难不难啊,想学学,现在都是写油猴脚本,权限太低了,看起来还是写插件有意思。