23 岁博士生修复 Firefox 中的 22 年“幽灵老 Bug”

2023年 10月 12日 64.2k 0

2002 年 6 月 2 日,Firefox 用户报告了一个 bug:当鼠标悬浮在工具栏图标上时会展示相关提示(该项特性名为 'Tooltips')。如果此时将浏览器从前台切换到后台,该提示会仍然留在前台——就像幽灵一样。而摆脱这一恼人提示的唯一方法是再次将浏览器从后台切换到前台,然后将鼠标从工具栏上移开。

该 bug 的具体复现如下图所示:

22 年后 Mozilla 终于为 Firefox 修复了该 bug,对应的 Bugzilla 报告也终于关闭了。

根据科技媒体 arstechnica 的报道,帮助修复该 bug 的是斯坦福大学的一年级电机工程博士生 Yifan Zhu,这也是他第一次向开源项目贡献补丁。

▲ https://fanzhuyifan.github.io/

Zhu 出生于 1999 年,也就是该 bug 首次报告三年之前。他是在 Linux 上使用邮件客户端 Thunderbird 时首次遭遇该 bug,认为这个 bug 太恼人了。他试着报告该 bug,结果发现它已经存在了 22 年之久,至今还没有修复,可能是因为它是一个小问题也不会导致崩溃处理的优先度不高。

毕竟这个 bug 仅仅影响到非常小区域的 UI,用户顺手就能临时处理,而且有很多其他比它更严重的 bug 在排队等待解决,所以这个 bug 就这样变为了“陈年老 Bug”。

于是他决定自己来修复。他知道如何编程,也正好处于博士生开始前的暑假,但此前从未向开源项目贡献代码,也从未在 Firefox 之类的复杂项目上工作过。

虽然冲劲十足,但 Zhu 刚开始的修 bug 之路算不上顺利。他先是在整个代码库里搜索 'tooltip',然后检查可能存在错误的候选内容,并插入调试打印语句跟踪执行。这样的工作非常耗费时间。

不过正是通过这样的“笨方法”,Zhu 最后定位到了问题所在。当鼠标悬浮在某个元素上时,一个计时器会启动去显示 tooltip,在鼠标移出事件后计时器将会取消。但使用快捷键切换窗口或虚拟桌面时,Firefox 没有取消计时器。Zhu 递交了补丁,让 tooltip 的显示基于 Firefox 失去焦点而不是鼠标离开应用。

几个小时后,Zhu 收到 Mozilla 资深软件工程师 Emilio Cobos Álvarez 的回复,他帮助完善了 Zhu 的补丁并提交到代码库中,并表示 Zhu 的第一个 Firefox 补丁令人印象深刻。

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论