相關的資料在 #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