从一次乌龙事件讲firefox debug

2025-07-06 22:36:32

在firefox升级到140后,发现tab栏和很多UI(包括菜单)中的文本都无法显示了。于是对firefox进行debug,主要利用了firefox的浏览器工具箱,它可以用下面的方式打开。

  1. 按F12,打开开发者工具
  2. 点击三个点(...)-> 设置
  3. 在高级设置中勾选「启用远程调试」和上面的选项「启用浏览器界面及附加组件的调试工具箱」
  4. CTRL+ALT+SHIFT+I,会弹出一个确认窗口,提示「检测到一个要求进行远程调试连接的传入请求。远程客户端可能通过您的浏览器进行完全控制!允许连接?」,点击确定,即可打开浏览器工具箱。

浏览器工具箱相比普通的开发者工具的优势在于它能对firefox本身的UI进行debug,从而可以更清楚地看到和调整各种UI元素的CSS属性。经过debug发现字体大小(font-size)被设置为了-0.152778

为什么说是乌龙呢,因为最后发现这是一个长期存在于我的shell配置文件中的错误的环境变量导致的,也就是:

export GDK_DPI_SCALE=-1

对于GTK应用缩放有两个环境变量:一个是GDK_SCALE,另一个是GDK_DPI_SCALE。前者控制UI元素的缩放,而后者只影响文本。

我也不知道当初(很久远)为何会将GDK_DPI_SCALE设置为-1,但是在firefox140之前并没有遇到问题,因此也就没有管它。我猜想是GTK对非法的环境变量做了特殊处理,从而能够fallback到1。在firefox升级到140后,将负数的GDK_DPI_SCALE作为一个正常值去计算最终的文本大小,从而得到了-0.152778这个神奇的数字。至于为何是这个数字就不得而知了。