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/m.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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP