Open lanyeeee opened 2 days ago
Linux下,Tauri v1的webview实现是webkit2gtk4.0,到了v2后实现升级成了webkit2gtk4.1,这玩意一堆BUG。
webkit2gtk4.0
webkit2gtk4.1
所以其实下面的问题只是间接与Tauri有关,问题的罪魁祸首是webkit2gtk4.1。 先罗列问题,都是我自己遇到过的:
Ubuntu22.04 + webkit2gtk-4.1: 2.44
Ubuntu22.04
webkit2gtk-4.1: 2.44
如果你的Ubuntu设置了系统代理,那么前端发出的所有请求全都会返回403。 这时候前端无法访问任何网页,也无法通过类似\<img src"xxx"/>的方法加载图片。
Tauri v2是比v1多了一个 配置项 来设置代理,如果配置正确倒是能正常工作,然而这玩意是写死的,只能在创建窗口时设置,如果运行期间系统代理地址变动了就又完犊子了。
这个问题在Tauri v1没有,Tauri v1能正确自动使用系统代理,即使系统代理在运行期间发生了变化,因为v1基于webkit2gtk4.0。 为了验证问题我用wry写裸的webview测试,结果v0.24.11正常,问题在下一个版本v0.25.0出现,这两个版本最大的不同就是依赖的webkit2gtk版本从4.0升级到了4.1。
webkit2gtk
4.0
4.1
更离谱的是,这个问题仅在Ubuntu22.04存在且稳定复现,我试过Ubuntu24.04,同样的webkit2gtk版本,没有这个问题。 我为此还又装了一个全新的Ubuntu22.04,依旧稳定复现。
Ubuntu24.04
所以当你在Ubuntu22.04 安装 webkit2gtk-4.1: 2.44时,就没法使用luakit等基于webkit2gtk的浏览器了(没错,我为了验证问题也自己手动编译了luakit),类似pake这种项目也直接没法用。
Ubuntu24.04 + N卡 + 默认驱动
N卡
默认驱动
在上述条件下运行 基于 webkit2gtk-4.1 的项目(Tauri v2 的 Hello world即可),整个窗口直接全白。 我也不知道这个问题的锅该给 NVIDIA 还是 webkit2gtk。 谷歌搜一下 WEBKIT_DISABLE_DMABUF_RENDERER 就能看到一堆相关的问题了。
webkit2gtk-4.1
WEBKIT_DISABLE_DMABUF_RENDERER
Ubuntu24.04 + webkit2gtk-4.1: 2.46.1-0 + 点击输入框(<input>)
webkit2gtk-4.1: 2.46.1-0
点击输入框(<input>)
这个问题是新鲜出炉的,因为Ubuntu是这个月才有webkit2gtk-4.1: 2.46.1-0的包。 饱受webkit2gtk-4.1折磨,我自然兴冲冲的更新了。 哦吼,不仅老BUG(1. 和 2.)没修,还多了个输入框完全没法用的BUG。 灰溜溜回退到 webkit2gtk-4.1: 2.44 后这个BUG就没了。
写不动了,4. 5. 6. 也都是webkit2gtk的问题,以后又被折磨了再回来继续写。
所以其实下面的问题只是间接与Tauri有关,问题的罪魁祸首是
webkit2gtk4.1
。 先罗列问题,都是我自己遇到过的:1. 前端不会自动使用系统代理
触发方式
Ubuntu22.04
+webkit2gtk-4.1: 2.44
详情
如果你的Ubuntu设置了系统代理,那么前端发出的所有请求全都会返回403。 这时候前端无法访问任何网页,也无法通过类似\<img src"xxx"/>的方法加载图片。
Tauri v2是比v1多了一个 配置项 来设置代理,如果配置正确倒是能正常工作,然而这玩意是写死的,只能在创建窗口时设置,如果运行期间系统代理地址变动了就又完犊子了。
这个问题在Tauri v1没有,Tauri v1能正确自动使用系统代理,即使系统代理在运行期间发生了变化,因为v1基于
webkit2gtk4.0
。 为了验证问题我用wry写裸的webview测试,结果v0.24.11正常,问题在下一个版本v0.25.0出现,这两个版本最大的不同就是依赖的webkit2gtk
版本从4.0
升级到了4.1
。更离谱的是,这个问题仅在
Ubuntu22.04
存在且稳定复现,我试过Ubuntu24.04
,同样的webkit2gtk
版本,没有这个问题。 我为此还又装了一个全新的Ubuntu22.04
,依旧稳定复现。所以当你在
Ubuntu22.04
安装webkit2gtk-4.1: 2.44
时,就没法使用luakit等基于webkit2gtk
的浏览器了(没错,我为了验证问题也自己手动编译了luakit),类似pake这种项目也直接没法用。2. 渲染错误,窗口全白
触发方式
Ubuntu24.04
+N卡
+默认驱动
详情
在上述条件下运行 基于
webkit2gtk-4.1
的项目(Tauri v2 的 Hello world即可),整个窗口直接全白。 我也不知道这个问题的锅该给 NVIDIA 还是 webkit2gtk。 谷歌搜一下WEBKIT_DISABLE_DMABUF_RENDERER
就能看到一堆相关的问题了。3. 点击输入框(\)会导致页面卡死
触发方式
Ubuntu24.04
+webkit2gtk-4.1: 2.46.1-0
+点击输入框(<input>)
详情
这个问题是新鲜出炉的,因为Ubuntu是这个月才有
webkit2gtk-4.1: 2.46.1-0
的包。 饱受webkit2gtk-4.1
折磨,我自然兴冲冲的更新了。 哦吼,不仅老BUG(1. 和 2.)没修,还多了个输入框完全没法用的BUG。 灰溜溜回退到webkit2gtk-4.1: 2.44
后这个BUG就没了。写不动了,4. 5. 6. 也都是
webkit2gtk
的问题,以后又被折磨了再回来继续写。