火爆外网!23岁华人博士修复22年历史漏洞,网友:我喜欢这个故事
创始人
2025-07-03 21:22:26
0

近日,又有一位华人小伙在外网爆火,原因是修复了一个存在22年的Bug。

自2002年以来,这个错误就一直潜伏在Firefox浏览器的核心代码中。

当时,这款应用程序还被称为Mozilla浏览器,处于其早期版本的阶段。

事实上,这个bug的存在已经如同Firefox浏览器的一部分一样久远。

这个问题不仅仅比Firefox浏览器自身的发布历史更早,而且已经伴随我们很长时间了。

早在2002年6月,在司法部针对微软的反垄断案件即将进入最终辩论阶段时,Adam Price在他的Mac电脑上使用当时被称为Mozilla软件的时候,不得不应对一个一直存在的问题——工具提示。

「如果我将鼠标悬停在工具栏链接上,并等待一秒钟,将会出现一个黄色小框,其中包含链接的描述信息。现在,如果我使用command-tab将Mozilla切换至后台,那么这个黄色小框将依然停留在前台。唯一摆脱它的方法就是再次将Mozilla切换到前台,并将鼠标移开工具栏链接。」

这是Price在6月2日的描述。

此外,还存在一些与这个问题相关的其他错误,但Price确定了一个可以重复的错误情景。这个问题在过去几周、几个月、几年,甚至接近二十年的时间里,都被许多其他人所证实。

BUG难以修复

多年来,人们一直在检查该线程或者将其他错误标记为与该问题重复项。

有时,这个问题似乎已经得到了修复,但程序员和评论者却发现它在不同版本中略有不同,或者之前的修复似乎是偶然的。

有时,这个问题似乎也会在不同操作系统如Windows或Linux中出现。

也有人不希望这个bug解决。在该问题的21周年之际,丹尼斯(denis)评论道:「我有点倾向于让它永远存在,感觉就像是过去的一个遗迹。」

现在这个古老的问题已经不复存在,因为Bug 148624的修复已在九月初推送,这个修复已经包含在新的构建版本中。

笔者特意尝试在一台尚未更新至118.0.1版本的Mac上的Firefox浏览器中重新复制工具提示问题,但却未能再次重现它。

这次修复本身非常小巧,主要是添加了对文档是否具有焦点的检查,以确保工具提示的显示。

华人小伙修复BUG

修复这个长达二十多年bug的是华人Yifan Zhu。

Zhu出生于1999年,而三年前人们刚发现这个bug。

当Zhu开始研究这个问题时,他刚刚完成了斯坦福大学的本科和硕士学位。此时,他正在攻读电气工程博士学位,并受到本杰明·范·罗伊(Benjamin Van Roy)教授的指导。

个人主页:https://fanzhuyifan.github.io/

为Firefox的Tooltip Listener编写补丁的Yifan Zhu写信给Ars表示,他们首先在Linux上的Thunderbird中遇到了这个错误,屏幕上漂浮着看似随机的文本片段。

在虚拟桌面之间频繁切换导致主题行漂浮在屏幕上,这非常烦人。Zhu学会了切换回Firefox或Thunderbird,并在切换回来之前移动光标。

Yifan Zhu给Ars的信中说:他们首次遇到了这个问题是在运行Linux上的Thunderbird时,当在虚拟桌面之间频繁切换时,屏幕上会出现一些看似随机的文本片段,这真的很让人恼火。

Zhu发现,要解决这个问题,就必须切换回Firefox或Thunderbird应用,然后在再次返回之前移动鼠标光标。

因此,Zhu对这个问题越来越感兴趣,并着手进行研究,试图提交错误报告。

然而,他开始感到担忧,因为这个bug已经存在了20多年,但却一直没有得到修复。因为这只是一个小小的外观问题,不会导致程序崩溃,所以很可能没有人会花时间修复它。

Zhu在信中写道:除非我亲自来解决。

Zhu很有动力并且知道如何编程,但是他在像火狐浏览器这样复杂的项目中零经验,并且以前从未为开源项目做出过贡献。

然而这些困难并没有难到他,在他博士课程开始前的那个夏天,他写道:

「那么,为什么不呢?」

最终,Zhu提交了一个更新,使工具提示在Firefox失去焦点时显示,而不是在鼠标离开应用程序时。

网友赞不绝口

不久之后,Zhu收到了Emilio Cobos Álvarez的来信,Emilio改进了Zhu的方法,并协助将这个提交添加到代码库中。

虽然这个修复引入了一些新问题,但它也成功地解决了这个长期存在的错误。Cobos Álvarez称赞道:「他对Firefox的第一个贡献令人印象深刻!」

在社交媒体上,Mastodon对Zhu的贡献进行了热烈庆祝,并感到十分地高兴。

他感叹道,Bugzilla本身(bug报告工具)的存在时间甚至比bug还要长(截至8月已持续25年)。

有人赞叹了Zhu的英雄之旅:

不是任何人都能做出伟大的承诺,但伟大的承诺可以来自任何地方。

有些人甚至毫不犹豫地表示他们热爱这个故事,并随之而来的是大量的点赞和赞美。

尽管有句话说得好,在你解决一个bug时,可能会引发更多bug的出现。然而,网友们对这位华人小伙的工作给予了非常高的赞誉。

还有人感叹这就是开源的魅力,当你解决一个问题时候,所有人都能共享你的贡献,这是非常有意义的。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...