首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

斯坦福华人年轻博士修了Firefox一个22年的“陈年”老bug

在最新推送的Firefox 119版本中修复了一个存在了22年的一个陈年老Bug,这个代码编号为Bug 148624。

为了这个Bug存了这么久都没有修复?这个Bug又是被谁解决的呢?让虫虫给你慢慢道来。

概述

22年前的2002年该漏洞第一次被发现。一个工程师Adam Price在Mac上使用当时还被称为Mozilla(Mozilla/5.0)的软件时遇到了持续存在的问题,工具提示条:

如果将鼠标悬停在工具栏链接上,并等待一秒钟,就会出现一个带有链接描述的黄色小框。此时,如果在使用command-tab将Mozilla移至后台,则该黄色小框将会永久保留在前台。要关闭它的唯一方法是再次将Mozilla调出来到前台,并将鼠标从工具栏上移开。

还有一些与此问题相关的其他错误,Price的这个可重新的Bug情况,在此后的几周、几个月、几年、以及未来二十多年里陆续被其他人遇到并验证。

多年来,人们会检查该线程或将其他错误标记为该问题的重复项。 略有有时它看起来是固定的,只是程序员和评论者发现它在不同版本中 不同,或者之前的修复似乎是偶然的。 有时它似乎也出现在Windows或Linux中。 一位评论者丹尼斯 (denis) 在21周年之际指出:“我有点偏向让它永远存在。感觉就像是过去的遗迹。”

问题的解决

22年后这个问题终于被一个华人小伙子解决,这个小伙子,根据名字推断是个华人小孩,他名字叫Zhu Yifan(朱一凡),小伙子99年生,斯坦福本科数学、电气工程硕士,电气工程博士。

在补丁邮件中,小朱表示他在Linux版的Thunderbird中遇到了这个错误,“屏幕上漂浮着看似随机的文本片段”。在虚拟桌面之间频繁切换导致主题行漂浮在屏幕上,这“非常烦人”。 很小块小朱学会了切换回Firefox或Thunderbird,并在切换回来之前移动光标。小朱对此感到莫大兴趣,于是对其进行研究,并试图找到问题所在,通过公开信息,他了解到这个Bug已经公开了20多年了,还没有被修复。由于,这是一个很小的仅仅影响“观感”的小问题,不会影响其他使用和导致系统崩溃,所以大家一直选择了“忍受”。

但是作为一个完美主义者(估计是处女座的),且有丰富编程经验的小伙子怎么能忍受这样的“小问题”呢。

所以,虽然在像火狐浏览器这样复杂的项目中没有任何经验,虽然此前 “从未为开源项目做出过贡献”。 所以,“那么,为什么不现在做一个呢,就做这个呢?”

开始的进展很不顺利。小伙子在整个代码库中搜索“Tooltip”,检查可能出问题的代码,并插入调试打印语句来跟踪执行。

最终小朱终于找到了问题所在:

当鼠标悬停在某个元素上时,计时器就会启动以显示工具提示。计时器在鼠标移出事件时取消,而当使用键盘快捷键切换窗口或虚拟桌面时,Firefox则没有收到此消息。

小朱推送了一个提交,在该提交中,让工具提示的显示和Firefox焦点同步,而不是鼠标离开应用程序。在接下来的几个小时里,小朱收到了Emilio Cobos ?lvarez的来信,他改进了小朱的方法并帮助将提交到代码库中。虽然修复造成了一些回归,问题终于修复了。

在提交这个Bug的修复代码时候小朱刚开始攻读电气工程博士学位。

对这个问题,大家只是好奇为什么这样的错误会持续这么长的时间,这个Bug仅仅只是造成外观上的不便,而且又不好复现,而且其他有很多比它更严重的Bug还需要排队解决,所以这个Bug就这样日复一日地被“陈”了下来。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OsCHaGH1wd1Fo6PmOFbUpeCA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com