Firefox對瀏覽器擴充套件規格Manifest v3的支援做出調整,並從即日起開始Manifest v3開發者預覽計畫,以收集Firefox使用者對Manifest v3實作的意見。

Manifest v3的發展,在過去一年發生許多變化,W3C下成立了社群小組已推動跨瀏覽器網頁擴充套件WebExtensions(WECG),因此Firefox如果依照過去對Manifest v3的實作,亦即支援Manifest v3,並且以Service Worker作為Background Page的替代品,這將會使許多使用案例面臨風險。因此Mozilla便在WECG中提案Event Pages,作為Background Page的替代,而這項作法受到社群的歡迎,也在Safari中獲得Apple的支持。

在2018年的時候,Chrome發布了Manifest v3,隨後微軟更採用Chromium作為新瀏覽器Edge的基礎,而以Chromium為基礎的瀏覽器市占突然大幅提升,Mozilla提到,Manifest v3勢必會成為瀏覽器擴充套件的標準。

Manifest v3適用於基於Chromium的Chrome、Edge與Opera,以及非Chromium陣營Safari和Firefox等瀏覽器。Mozilla表示,雖然他們的目標是想維持Firefox、Safari和Chromium瀏覽器擴充套件間的相容性,但是在Manifest v3的實作上,價值觀與其他供應商存在分歧,因此在實作上會與Chrome和Safari不同。

在Firefox中,Manifest v3將成為WebExtensions的下一代更新,官方提到,因為Manifest v2架構的限制,使得目前有一些問題難以解決,而引入Manifest v3則剛好是做出改變的機會。擴充套件中的核心是Background Page,該元件必須在執行時持續存在,但因為記憶體和部份平臺(如Android)的限制,難以保證Background Page的狀態,有時不可避免地被終止。

在Manifest v3中,Mozilla採用了一種新架構,使得後臺腳本能夠被重新啟動,而為了支援這項新設計,Mozilla也重新設計現有API,使擴充套件能夠不需要後臺腳本,直接宣告瀏覽器的行為。擴充套件的另一個核心部分是內容腳本,該腳本直接與網頁互動,Mozilla設計了一個能夠阻擋不安全行為的新方法,在擴充套件API中,取消基於字串的程式碼執行。

Chrome採用Manifest v3中最具爭議的變化是取消阻擋WebRequest,Mozilla提到,雖然這作法提供一定程度的功能和靈活性,但是對於隱私和內容阻擋應用也造成衝擊。對此,Mozilla會在Manifest v3中繼續支援阻擋WebRequest,並且最大程度相容於其他瀏覽器,也確保內容攔截器和其他該API能夠執行無礙,畢竟內容阻擋是當前瀏覽器擴充套件的重要應用。

Chrome的Manifest v3版本,加入了Background Service Worker作為Background Page的替代,出於相容性原因,Mozilla也在Firefox中擴充Service Workers,但因為Service Workers無法完全支援Firefox的重要用例,尤其是在DOM相關的特性和API方面。

因此在Firefox將會支援Event Pages,並且在Firefox現在的開發者預覽版中,先不加入Service Workers,目的是要讓開發人員可以先移植Background Page支援Manifest v3,並且保留Manifest v2中所有DOM相關功能的存取權限。

Mozilla現在釋出Manifest v3開發者預覽版本,以收集開發者對Manifest v3實作的意見,並預計將會在2022年底之前,向所有用戶提供Manifest v3的支援。


熱門新聞

Advertisement