Browsers 板


LINE

因应谷歌强推 Manifest V3,更新一些资讯。 1. 支援浏览器版本 1.1. 若要共用 manifest.json,一般要 Firefox / Chromium >= 121。 因为目前 Firefox MV3 只支援 background page, Chromium MV3 只支援 background service worker, 二者在 manifest.json 的 background 有不同的 property 设定值。 在 121 版以後,可以在 manifest.json 填入二种设定值, 浏览器会自动忽略不支援的值。 然而在 121 版以前的 Firefox/Chromium, 若 manifest.json 的 background 含有不支援的设定值,就无法载入套件, 因此无法共用 manifest.json,必须为不同浏览器准备不同的 manifest.json, 除非你的套件完全不使用 background script。 不过这点不算是刚需,因为很多开发者本来就会模组化撰写并使用打包脚本。 详见:https://t.ly/Hju1V 1.2. 由於根凭证过期问题,一般只有 Firefox >= 115 可以安装套件。 若要在旧版的 Firefox 安装套件,主要有二种方法: (1) 安装 Fx ESR 或 Developer 版本,并关闭签署检查。 (2) 更改 Firefox 的二进位码 详见:#1duAWaDJ (Browsers) 1.3. Manifest V3 支援门槛:Firefox >= 109, Chromium >= 88 1.4. Firefox for Android 一般支援门槛:Firefox >= 113 Firefox for Android 技术上来说, 113 <= Fx 开始支援从 Firefox 附加元件站 (AMO) 安装 Android 套件; 79 <= Fx < 113 必须使用 Nightly 且用比较复杂的开发人员方式安装; 68.2 <= Fx < 79 可以安装桌机版的 Firefox 套件(前提是程式/API可以跑)。 但那些都是浮云,由於 1.2. 根凭证问题, 目前 Firefox for Android < 115 其实都无法安装套件, 除非有高人开发出让 Firefox for Android 绕过安装及签署限制的方法。 (1.2. 相关方法只适用桌机版) 详见:#1bewwsWQ (Browsers) 1.5. 作业系统支援: Windows XP: Firefox <= 52, Chromium <= 49 Windows 7/8: Firefox <= 115, Chromium <= 109 Windows XP 太老,目前应该几乎没人在考虑了,要用也是为了使用旧版套件。 Windows 7/8 官方已停止支援,不过目前大约还有 2.5% 的桌机市占率。 综上所述, 一般而言建议写成 MV3 并支援 Firefox >= 115 / Chromium >= 109; 若要懒一点直接共用 manifest.json,需求会上升到 Firefox/Chromium >= 121; 若想多照顾一些使用者,可以把门槛降低到 Firefox >= 109 / Chromium >= 88, 但实际上开发者得花额外心力处理更多API相容问题, 使用者也要处理签署问题, 值不值得请自行三思。 至於写成 MV2 套件,一般而言不太推荐, 毕竟 Chromium 通常会强制更新浏览器,且现在已拚命阻止使用者安装及使用 MV2, 不久即将停止支援,到时候大家都不能用; Firefox 则因为根凭证问题导致低於 115 版本安装套件麻烦又不安全, 扩大支援版本的效益不是很大。 当然如果你的套件是 MV2 就存在很久的套件, 并且 MV3 确实会影响安装、使用或基本功能, 那就另当别论。 2. chrome vs browser API 在 Manifest V2 时, 开发跨平台套件通常要嘛 chrome.* 用到底, 要嘛用 browser.* 并且在 Chromium 挂上 browser-polyfill.js。 在 Manifest V3, Chromium 大部分 API 已支援回传 promise, 因此即使想用 promise 也可以选择 chrome.* 用到底, 或者用 browser.* 并且在 Chromium 加上 browser = chrome 的超轻量 polyfill。 然而 Chromium 的 onMessage 仍然不支援回传 Promise(以及在发讯端直接 error), 如有此需求,还是可以考虑挂上 browser-polyfill.js。 但相对地,browser-polyfill.js 更新有点缓慢, 有些 Chromium 较晚加入的 API,直接透过此 polyfill 呼叫会出错, 需要反映给官方更新, 或自行在原始码的 const apiMetadata 那边补上未定义的 API。 (详见:https://t.ly/GCffk3. service worker vs background page Chromium MV3 强迫把 background page 改成 service worker, 一个不小的冲击是无法使用 DOM API,例如 document, DOMParser, XMLHttpRequest; 以及 service worker 会定期休眠及重启导致许多东西需要重载。 对於前者,官方提供的解决方案是使用 offscreen API (Chromium >= 109), 这个 API 可以建立一个永久性的隐藏页面,供上述需求使用, 实务上要写一些 messaging 和 background service worker 沟通。 (详见:https://t.ly/5vIk7) Firefox MV3 目前还不支援此 API, 虽然 Firefox MV3 目前还在使用 background page,不会因此无法使用 DOM API, 但因为根本没有相关 API,如果要跨浏览器, 得写些包裹二种使用情境的判断式或高阶 API,会有点麻烦。 至於後者,目前还没有完美解法, 一个比较偷懒的做法是定期执行 API 使 worker 不断处於活跃状态, 但在某些情况仍会有问题(例如电脑休眠重启)。 Firefox MV3 的 background page 也强迫改成 non-persistent, 因此也会有同样问题要处理。 4. 使用者自订脚本 之前传说 MV3 会导致猴子死光,这点目前官方有善意回应。 新的 userScripts API (Chromium >= 120, Firefox >= 136) 可以允许使用者写入的任意脚本以类似 content scripts 的方式执行, 但无法呼叫 messaging 以外的 extension API。 此外 Chromium 必须要使用者开启开发人员模式才能使用此 API。 目前所见 Tampermonkey MV3 版本已确定可运作。 详见:https://t.ly/oJ3tp 5. webRequestBlocking 这个就是 Google 铁了心要搞死各种内容阻挡器(以提升效能/安全性的名义), 目前仍是比较棘手的问题。 其实 MV3 也不是完全无法使用相关功能,但必须改登录档强制安装套件, 需要提醒使用者做相关设定,且需要相关系统权限。 详见:https://t.ly/QdS2I 6. sidebarAction vs sidePanel 这算是 MV3 极少数的福利。 Chromium >= 114 为 MV3 套件加入新的 sidePanel API,终於有原生支援的侧栏了。 但 Chromium 侧栏目前看起来仍不如 Firefox, 其一是只能放在右侧,不像 Firefox 可以切换显示在左或右侧; 而且四角设计成圆弧状,我觉得有点丑,且可能影响某些套件的操作。 再来是目前还有一些 bug,例如无法在某些使用者操作下开启。 详见:https://t.ly/8UsNjhttps://t.ly/fhDOD 7. 手机浏览器支援 手机浏览器的扩充套件支援目前满乱的, 首先 iOS 的浏览器因为苹果的独断政策,只支援 Safari 核心, iOS 版的 Chromium / Firefox 都是无法安装套件。 Android 上的 Chromium / Edge 也是不支援套件, 以往主要是 Kiwi browser 这个分支有支援套件,但作者已退坑不更新了。 Microsoft Canary 据说有合并 Kiwi 相关程式码, 也有支援扩充套件,但要用很麻烦的方法开启开发人员模式安装。 Firefox for Android 整体来说对套件的支援算相对好一点, 不过目前仍有个值得吐槽的点是打死不支援 downloads API, 而且是执行时出错,无法藉由侦测 browser.downloads 做 feature detection, 总之就是给开发者找麻烦……。 话虽如此,在 Android 上的 downloads 实做似乎一直有些技术上的难题, 即使是之前的 Kiwi browser 有支援, 其实也有一些功能上的问题及相容性问题要解决。 总之手机浏览器支援有很多坑要踩,请感恩仍致力於此的程序猿们……。 -- 《终结内容农场》浏览器套件 https://bit.ly/CFTINFO 适用 Chrome 系及 Firefox 系桌面浏览器 适用 Android 手机浏览器 (Kiwi Browser, Firefox for Android 等) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.29.236 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Browsers/M.1749395275.A.4EE.html ※ 编辑: danny0838 (59.115.29.236 台湾), 06/08/2025 23:22:45
1F:推 tPA: 推 06/09 17:52
2F:推 kyrc: 推 06/09 18:23
3F:推 kawasakiZII: 推 06/10 01:56
※ 编辑: danny0838 (59.115.61.71 台湾), 06/10/2025 18:56:58
4F:→ kyrc: 安卓的 edge 能安装扩充了,开启开发人员模式也只要点一下 06/10 22:31
我是没看到, 你能告诉大家怎麽操作才能安装 Edge 和 Chrome 商店里的套件, 或直接从 .crx 档案安装套件吗? ※ 编辑: danny0838 (59.115.61.71 台湾), 06/11/2025 00:33:32
5F:→ kyrc: https://imgpoi.com/i/FK4IHB.png 06/11 20:37
6F:→ kyrc: https://imgpoi.com/i/FK471E.png 06/11 20:37
你的撷图只有看到安装列出的套件, 没有说明如何安装商店中的任意套件, 目前看起来就是不支援的样子。 ※ 编辑: danny0838 (59.115.61.71 台湾), 06/11/2025 22:39:58
7F:推 tennyleaz: 推 06/14 09:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP