GNOME Web(2012 年之前称为 Epiphany)是一个开源的网络浏览器,基于苹果 WebKit 渲染引擎的 GTK 移植 —— WebKitGTK。它是由 GNOME 项目为类 Unix 系统开发的,是 GNOME 的默认和官方网络浏览器,也是 GNOME Core 应用程序的一部分。
尽管是 GNOME 的一个组件,GNOME Web 没有对 GNOME 组件的依赖性,因此它也可以被安装在任何支持 GTK 和 WebKitGTK 的系统上。GNOME Web 也是 elementary OS 和 Bodhi Linux 5 的默认网络浏览器
过去 GNOME Web 确实支持扩展,但因为它们需要访问浏览器的内部结构,而且在新版本发布时经常出现问题。为了避免这些问题,后来 GNOME Web 不再支持扩展。
近日 GNOME 开发者在博客表示,已经将 WebExtensions 带到了 GNOME Web 上,WebExtensions API 允许用户使用原生网络技术建立扩展,并统一了不同浏览器的扩展开发(WebExtensions 用于 Chrome、Firefox 和 Safari)。一个支持扩展的 GNOME Web 版本将包含在 GNOME 43 中,该版本计划于 9 月 21 日发布。
需要注意的是,目前 GNOME Web 只实现了 WebExtension API 的一部分,但这种支持已经足以运行一些当下知名的扩展了。随着时间的推移,WebExtension API 的支持将被进一步扩展。开发工作目前仍在进行中,重点是实施 Manifest V2 API,并确保与 Firefox 和 Chrome 扩展兼容,支持 Manifest V3 的计划在未来也将与 V2 同时进行。
目前支持的 API 包括:
- alarms :调度事件在特定日期或时间触发
- cookies :管理和查询浏览器的 cookies
- downloads :启动和管理下载的能力
- menus :创建上下文菜单项
- notifications :显示桌面通知的功能
- storage :存储扩展的私人设置
- tabs :控制和监控浏览器的标签,包括创建、关闭等
- windows :控制和监控浏览器窗口
在目前暂未实现的 API 中有一个需要开发者注意的那就是 webRequest API,它通常被 uBlock Origin 等屏蔽扩展使用。开发者承诺将在未来的某个时候实现这个 API,但是需要 WebKitGTK 进行一些改进。
GNOME 的下一个版本也将带回对独立的 PWA(渐进式 Web 应用程序)的支持,它们可以像普通程序一样被安装和删除,在用户环境中运行 Web 应用将由 GNOME Web 浏览器处理,同样也计划与为 Chrome 创建的 PWA 应用程序兼容。