缺失多年,GNOME Web(Epiphany)終于支持擴展了
GNOME Web(2012 年之前稱為 Epiphany)是一個開源的網絡瀏覽器,基于蘋果 WebKit 渲染引擎的 GTK 移植 —— WebKitGTK。它是由 GNOME 項目為類 Unix 系統開發(fā)的,是 GNOME 的默認和官方網絡瀏覽器,也是 GNOME Core 應用程序的一部分。
盡管是 GNOME 的一個組件,GNOME Web 沒有對 GNOME 組件的依賴性,因此它也可以被安裝在任何支持 GTK 和 WebKitGTK 的系統上。GNOME Web 也是 elementary OS 和 Bodhi Linux 5 的默認網絡瀏覽器
過去 GNOME Web 確實支持擴展,但因為它們需要訪問瀏覽器的內部結構,而且在新版本發(fā)布時經常出現問題。為了避免這些問題,后來 GNOME Web 不再支持擴展。
近日 GNOME 開發(fā)者在博客表示,已經將 WebExtensions 帶到了 GNOME Web 上,WebExtensions API 允許用戶使用原生網絡技術建立擴展,并統一了不同瀏覽器的擴展開發(fā)(WebExtensions 用于 Chrome、Firefox 和 Safari)。一個支持擴展的 GNOME Web 版本將包含在 GNOME 43 中,該版本計劃于 9 月 21 日發(fā)布。
需要注意的是,目前 GNOME Web 只實現了 WebExtension API 的一部分,但這種支持已經足以運行一些當下知名的擴展了。隨著時間的推移,WebExtension API 的支持將被進一步擴展。開發(fā)工作目前仍在進行中,重點是實施 Manifest V2 API,并確保與 Firefox 和 Chrome 擴展兼容,支持 Manifest V3 的計劃在未來也將與 V2 同時進行。
目前支持的 API 包括:
- alarms :調度事件在特定日期或時間觸發(fā)
- cookies :管理和查詢?yōu)g覽器的 cookies
- downloads :啟動和管理下載的能力
- menus :創(chuàng)建上下文菜單項
- notifications :顯示桌面通知的功能
- storage :存儲擴展的私人設置
- tabs :控制和監(jiān)控瀏覽器的標簽,包括創(chuàng)建、關閉等
- windows :控制和監(jiān)控瀏覽器窗口
在目前暫未實現的 API 中有一個需要開發(fā)者注意的那就是 webRequest API,它通常被 uBlock Origin 等屏蔽擴展使用。開發(fā)者承諾將在未來的某個時候實現這個 API,但是需要 WebKitGTK 進行一些改進。
GNOME 的下一個版本也將帶回對獨立的 PWA(漸進式 Web 應用程序)的支持,它們可以像普通程序一樣被安裝和刪除,在用戶環(huán)境中運行 Web 應用將由 GNOME Web 瀏覽器處理,同樣也計劃與為 Chrome 創(chuàng)建的 PWA 應用程序兼容。