Trở lại tháng 6 năm 2002, khi vụ kiện chống độc quyền giữa Bộ Tư pháp Mỹ chống lại Microsoft xuất hiện, Mark Shuttleworth, người sáng lập Ubuntu và Adam Price bắt đầu gặp phải một lỗi lạ trên trình duyệt Mozilla (tên ban đầu là Microsoft). Firefox) trên máy Mac họ đang sử dụng.
“Nếu tôi di chuột qua một liên kết trên thanh công cụ và đợi một giây ở đó, một hộp nhỏ màu vàng có mô tả về liên kết sẽ xuất hiện. Nếu tôi sử dụng tổ hợp nút Command – Tab để đưa Firefox vào nền, hộp nhỏ màu vàng đó sẽ vẫn ở ngay trên màn hình. Cách duy nhất để thoát khỏi điều này là mở lại Firefox và di chuột ra khỏi thanh công cụ. Giá nói về lỗi này.
Ngoài ra còn có một số lỗi khác liên quan đến vấn đề này, nhưng Price cuối cùng đã có thể tái tạo lại nó. Không chỉ vậy, vấn đề này còn được xác nhận bởi nhiều người khác gặp phải nó trong những tuần sau đó, rồi những tháng và năm sau đó – cuối cùng vấn đề liên quan đến chú giải công cụ này vẫn tồn tại. hơn 20 năm chưa sửa chữa. Được phát hiện vào năm 2002, lỗi này còn cũ hơn cả trình duyệt Firefox (có tên này từ năm 2004).
Nhiều năm sau, người ta vẫn bàn tán về những lỗi liên quan đến vấn đề này trên nhiều diễn đàn khác nhau. Đôi khi nó được sửa nhưng sau đó các lập trình viên và người dùng nhận ra rằng nó chỉ khác một chút so với các phiên bản trước hoặc vì một lý do ngẫu nhiên nào đó mà nó không hiển thị. Đôi khi nó còn xuất hiện trong Windows và Linux, nhưng dù thế nào đi nữa, vấn đề này chưa bao giờ được khắc phục hoàn toàn trong hơn 20 năm qua – một di tích của quá khứ.
Nhưng kể từ khi phiên bản sửa lỗi Bug 148624 được phát hành vào đầu tháng 9, di tích này đã không còn nữa. Bản vá này cũng rất gọn nhẹ, bổ sung thêm công cụ kiểm tra xem có tài liệu nào xuất hiện cạnh dòng mã hiển thị chú giải công cụ hay không.
Điều thú vị là Yifan Zhu, lập trình viên viết bản sửa lỗi cho lỗi Firefox hơn 20 tuổi này, cũng chỉ mới 24 tuổi. Trong email gửi tới Arstechnica, lập trình viên sinh năm 1999 cho biết lần đầu tiên họ gặp phải lỗi này là với Thunderbird trong Linux khi “văn bản ngẫu nhiên dường như nổi trên màn hình của tôi”. Việc thường xuyên chuyển đổi giữa các desktop ảo với những dòng chữ này liên tục xuất hiện trên màn hình khiến “cực kỳ khó chịu”. Zhu sau đó đã học cách mở lại Firefox hoặc Thunderbird và di chuyển con trỏ chuột để tắt nó.
Tuy nhiên, nó ngày càng trở nên khó chịu hơn nên họ đã nghiên cứu và cố gắng khắc phục lỗi này. Nhưng sau đó “Tôi kinh hoàng nhận ra rằng báo cáo lỗi này đã tồn tại hơn 20 năm và nó vẫn chưa được sửa.” Có lẽ vì “chỉ là một vấn đề ‘mỹ phẩm’ nhỏ không làm hỏng ứng dụng” nên không ai muốn sửa – “Trừ khi tôi tự làm điều đó.” Zhu nói trong email.
Không chỉ vậy, Zhu và những người bạn của anh còn cho rằng, không chỉ là vấn đề thẩm mỹ nhỏ, lỗi này còn rất khó tái hiện nên không được các lập trình viên ưu tiên như những vấn đề nghiêm trọng khác.
Động lực là có và kiến thức về lập trình cũng có, nhưng Zhu “hoàn toàn không có kinh nghiệm với các dự án phức tạp như trình duyệt Firefox” và “chưa bao giờ đóng góp cho các dự án nguồn mở trước đây”. ”. Dù vậy, anh ấy vẫn còn một kỳ nghỉ hè phía trước, vậy tại sao không?
Sự khởi đầu của họ không hề suôn sẻ. Zhu cho biết: “Tôi đã tìm kiếm từ khóa “chú giải công cụ” trong toàn bộ cơ sở mã, kiểm tra nội dung để tìm các khả năng và chèn các câu lệnh gỡ lỗi để giám sát việc thực thi. .” Cuối cùng câu trả lời đã xuất hiện.
“Khi con trỏ chuột di chuột qua một phần tử nào đó, bộ đếm thời gian sẽ bắt đầu hiển thị chú giải công cụ. Bộ hẹn giờ này lẽ ra sẽ bị hủy khi chuột di chuyển ra khỏi các thành phần đó, nhưng điều này không xảy ra trong Firefox khi tôi sử dụng phím tắt để chuyển đổi cửa sổ hoặc màn hình ảo.
Từ đó, Zhu đã đưa ra cam kết hiển thị chú giải công cụ dựa trên việc sự kiện tiêu điểm có xảy ra trong Firefox hay không, thay vì phụ thuộc vào việc con trỏ chuột có di chuyển ra khỏi ứng dụng hay không. Vài giờ sau, họ nhận được thông tin từ Emilio Cobos Álvarez, người đã xem xét cam kết của Zhu và đưa nó vào cơ sở mã của Firefox. Cho đến nay, bản sửa lỗi này về cơ bản đã loại bỏ hầu hết các trường hợp xảy ra, tuy nhiên thỉnh thoảng nó vẫn xuất hiện trong một số trường hợp cụ thể.
Cobos Álvarez, người đưa bản sửa lỗi của Zhu vào cam kết, cho biết “việc này không hề dễ dàng” do các cấu hình khác nhau của Firefox và cách chúng phản hồi với các hệ điều hành khác nhau. Việc tìm ra giải pháp giải quyết hoàn toàn vấn đề này trong khi thiếu đầu vào của hệ điều hành là một thách thức đáng kể – nhưng Zhu đang làm được điều đó. Đó là lý do Álvarez đặc biệt ấn tượng với đóng góp đầu tiên của Zhu cho Firefox.
Có thể không phải ai cũng có thể tạo ra một cam kết lớn, nhưng một cam kết lớn có thể đến từ bất kỳ ai.
Link nguồn: https://cafef.vn/mot-loi-ton-tai-hon-20-nam-trong-firefox-duoc-mot-coder-23-tuoi-sua-chua-nhu-the-nao-188231102060027402.chn