在firefox升级到140后,发现tab栏和很多UI(包括菜单)中的文本都无法显示了。于是对firefox进行debug,主要利用了firefox的浏览器工具箱,它可以用下面的方式打开。
- 按F12,打开开发者工具
- 点击三个点(
...
)-> 设置 - 在高级设置中勾选「启用远程调试」和上面的选项「启用浏览器界面及附加组件的调试工具箱」
- 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
这个神奇的数字。至于为何是这个数字就不得而知了。