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

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

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 补丁令人印象深刻。

责任编辑:武晓燕 来源: OSCHINA
相关推荐

2023-10-12 07:27:18

火狐浏览器

2023-10-15 13:15:12

博士研究

2014-06-23 10:26:23

Wi-Fi

2021-10-11 10:30:46

机器学习人工智能计算机

2022-04-08 07:54:40

人工智能核算结果Python

2023-04-08 11:06:23

Firefox浏览器

2021-12-06 10:48:20

计算机博士 技术

2021-02-24 15:00:12

学术调研学者

2022-05-26 15:03:54

芯片技术

2024-10-28 10:20:00

OpenAIGPT-4o

2024-03-11 16:33:26

机器狗训练

2021-04-09 14:59:15

技术研发指标

2019-07-03 09:01:29

博士生顶会计算机

2021-07-24 11:03:37

AI 数据人工智能

2010-04-07 09:34:43

Firefox漏洞

2009-11-11 12:07:31

Firefox版本发布下载

2021-02-20 21:04:53

人工智能机器学习技术

2024-10-21 15:14:54

2021-07-19 15:02:48

机器人人工智能算法

2024-03-12 13:14:58

模型训练
点赞
收藏

51CTO技术栈公众号