火爆外網!23歲華人博士修復22年歷史漏洞,網友:我喜歡這個故事
近日,又有一位華人小伙在外網爆火,原因是修復了一個存在22年的Bug。
自2002年以來,這個錯誤就一直潛伏在Firefox瀏覽器的核心代碼中。
當時,這款應用程序還被稱為Mozilla瀏覽器,處于其早期版本的階段。
事實上,這個bug的存在已經如同Firefox瀏覽器的一部分一樣久遠。
這個問題不僅僅比Firefox瀏覽器自身的發布歷史更早,而且已經伴隨我們很長時間了。
早在2002年6月,在司法部針對微軟的反壟斷案件即將進入最終辯論階段時,Adam Price在他的Mac電腦上使用當時被稱為Mozilla軟件的時候,不得不應對一個一直存在的問題——工具提示。
「如果我將鼠標懸停在工具欄鏈接上,并等待一秒鐘,將會出現一個黃色小框,其中包含鏈接的描述信息?,F在,如果我使用command-tab將Mozilla切換至后臺,那么這個黃色小框將依然停留在前臺。唯一擺脫它的方法就是再次將Mozilla切換到前臺,并將鼠標移開工具欄鏈接?!?/span>
這是Price在6月2日的描述。
此外,還存在一些與這個問題相關的其他錯誤,但Price確定了一個可以重復的錯誤情景。這個問題在過去幾周、幾個月、幾年,甚至接近二十年的時間里,都被許多其他人所證實。
BUG難以修復
多年來,人們一直在檢查該線程或者將其他錯誤標記為與該問題重復項。
有時,這個問題似乎已經得到了修復,但程序員和評論者卻發現它在不同版本中略有不同,或者之前的修復似乎是偶然的。
有時,這個問題似乎也會在不同操作系統如Windows或Linux中出現。
也有人不希望這個bug解決。在該問題的21周年之際,丹尼斯(denis)評論道:「我有點傾向于讓它永遠存在,感覺就像是過去的一個遺跡?!?/span>
現在這個古老的問題已經不復存在,因為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的出現。然而,網友們對這位華人小伙的工作給予了非常高的贊譽。
還有人感嘆這就是開源的魅力,當你解決一個問題時候,所有人都能共享你的貢獻,這是非常有意義的。