迁移至Manifest Version 3
阻碍
后台脚本/定时脚本
由于MV3将background修改为了service worker,该项修改直接导致了无法在background的sandbox中运行后台脚本,可能需要等待该提案实现:https://github.com/w3c/webextensions/issues/170,https://docs.google.com/document/d/1b-I-vXq2h7OFFmus78jZXIWcKilKJLKLeGplnY9wt7k/edit#heading=h.snjc0asv87ou,但啥时候实现,也不太清楚,实现之后也得有一段时间的过渡期
service worker中无法使用setTimeout等方法,直接导致cron包无法使用,但chrome也提出了chrome.alarms,实现起来可能比较麻烦
~~不支持sandbox的问题比较致命,但为了长期的发展,长痛不如短痛0.10.0将重构支持MV3,对于后台脚本的问题可能使用打开新窗口的方式暂时实现,等offscreen documents提案实现后再迁移(但也不确定能不能支持我们后台脚本的需求)~~
MV3还有不少有利的提案还在处理中,等到完全停止时也还有一段时间,并且完全停止后也还需要一段过渡时间,国内浏览器与其他厂商的态度也不一,脚本猫继续使用MV2进行开发,开发过程中注意MV3的某些特性吧(例如service worker)
油猴脚本
service worker中不支持URL.createObjectURL,可能会导致GM_xhr方法无法获取二进制之类的内容
上述是准备重构时发现的问题,后续继续补充
计划时间:
脚本站后端重构完成之后,预计2023年中旬
👍
firefox的mv3迁移指南:https://extensionworkshop.com/documentation/develop/manifest-v3-migration-guide/
GM_xmlhttpRequest 实现问题:https://github.com/w3c/webextensions/issues/176