用 WPE 替代 WebKitGTK 以恢复 Emacs xwidget-webkit

之前 Emacs 使用 WebKitGTK 提供 xwidget-webkit,但由于新版 WebKitGTK 不再支持 Emacs 依赖的 off-screen 渲染,导致现有的 xwidget-webkit 失效甚至崩溃。WebKitGTK 从 2.42 以后停止了对 off-screen 窗口的支持,这正是 Emacs 需要的渲染方式。

为了解决这个限制,我们可以尝试用 WPE WebKit 继续为 Emacs 的网页视图提供支持。WPE 支持 off-screen 渲染并具备硬件加速视频播放等特性,更适合嵌入式和现代图形后端场景。基于这个思路,我做了一次粗略尝试,成功让 WPE 在 Emacs 中运行,相关实现见我的 PR:

目前实现还有很多需要完善的地方,但已经证明了用 WPE 继续支持 Emacs 的 xwidget-webkit 是可行的。

5 个赞

emacs 最近的webkit集成大调整好像是 @oldosfan 做的, 可以听听他的意见

macOS 下无需调整,天然支持 Xwidget。