相关的资料在 #1XiiUezf (Browsers) 等 Manifest V3 的相关帖子都有提到,
只是非开发者可能不会留意,所以换个比较能引起注意的标题。XD
2023 年一月开始 Chromium 将无法执行 Manifest V2 套件,
而 Manifest V3 套件禁止执行远端脚本,
(所谓远端脚本就是一切套件可以主动从远端抓来的 JS 程式码)
换言之所有油猴类自订脚本的套件都会死掉,
包括 Greasemonkey、Violentmonkey、Tampermonkey 等等。
Google 对 MV3 套件有明确额外规范:
Additional requirements for Manifest V3
Extensions using Manifest V3 must meet additional requirements
related to the extension's code. Specifically, the full functionality
of an extension must be easily discernible from its submitted code.
This means that the logic of how each extension operates should be
self contained. The extension may reference and load data and other
information sources that are external to the extension, but these
external resources must not contain any logic.
Some common violations include:
* Including a <script> tag that points to a resource that is not
within the extension's package
* Using JavaScript's eval() method or other mechanisms to execute a
string fetched from a remote source
* Building an interpreter to run complex commands fetched from a
remote source, even if those commands are fetched as data
换言之,有些人想过的用 evaljs 或 WASM 等绕道方式,都会被视为违规。
Chromium 系列如此,那 Firefox 呢?
根据情报,Firefox 的 Manifest V3 也会跟进 Choromium 做法。
虽然 Firefox 目前还不支援 Manifest V3,
也尚未提出明确开始支援 MV3 和停止支援 MV2 的时程,
但长远来看,结果一样。
Firefox 和 Chromium 有个差别是 Firefox 本来就支援 user chrome JS,
但无法使用一般套件 API,
只能使用旧套件的类 XUL/XPCOM 技术,写起来比较麻烦,且可能升级就不相容。
油猴类套件废掉,短期内冲击可能不小,
但长远来看,我个人对此政策没有太大意见。
禁止远端脚本的理由很明显,就是有被滥用的风险,
今天某套件可以下载一段远端的脚本执行,
明天就会有攻击者架设有恶意脚本的远端网站,
且任何套件都有可能主动抓恶意脚本搞恐怖攻击,
这对浏览器使用者的数位安全非常没有保障。
技术上来说,所有油猴类脚本都可以改写成套件,
而套件起码会通过 Google、Firefox 站方审核和监管,
安全性比较有保障。
虽然说套件和油猴脚本相比,
开发上的确麻烦一点,效能也可能差一点,
但这就是未来的趋势,除非有能力自己写个全新浏览器来反垄断。
开发者倒是可以抓紧时机,抢先把各种实用油猴脚本改写成套件,
早发表早卡位早得流量。XD
除此之外,一些比较简单的脚本,其实可以写成书签小工具。
或许未来会有人写个简单的书签小工具管理套件。XD
顺便在以下开放大家分享常用、实用的使用者脚本,
及可以替代的套件或书签小工具(如果能找到),
也许可以得到使用者和一些开发者的关切:)
相关资料:
Violent monkey 的 issue:
https://github.com/violentmonkey/violentmonkey/issues/505
Tampermonkey 的 issue:
https://github.com/Tampermonkey/tampermonkey/issues/644
里面有提到 Google 有计画让 power user 设定 user script 或 CSS,
但目前八字没有一撇,也没看到相关的 API 和文件。
其他讨论:
https://groups.google.com/a/chromium.org/g/chromium-extensions/c/hQeJzPbG-js
各种使用者抱怨XD