(資料圖片)

Firefox 將在2023年1月Windows 和 Linux 用戶啟用全新架構,Mac 版本用戶需要多等待一下,目前新架構已經在Firefox Nightly中適用。

曾幾何時,瀏覽器比現在簡單得多。瀏覽器就是一個單一的操作系統進程,所有的一切都發生在一個進程中。這對于使用 Accessibility Tree(無障礙樹)來獲取有關用戶界面和 Web 內容的輔助技術而言,獲取信息的方式也更加簡單高效。

不過隨著使用量和復雜性的增加,安全漏洞的風險也隨之增加。為了提高性能、穩定性和安全性,瀏覽器開始將不同的網頁轉移到不同的進程中。而且為了進一步提高安全性,如今的瀏覽器還會將 Web 內容進程置于沙盒中,進一步減少了訪問權限。這意味著輔助技術相比以往更加難以訪問包含無障礙樹的 Web 內容進程,也不能向該進程注入代碼,無障礙環境的情況變得十分復雜。

Firefox瀏覽器的無障礙引擎(Accessibility Engine)負責為屏幕閱讀器等輔助技術提供它們訪問網頁內容所需的信息。這些工具需要與瀏覽器交互,并對用戶或有關網站的變化作出反應。如果瀏覽器因為緩慢或其他問題而出現過多的延遲,那么使用 Firefox 訪問網絡上的內容反而會成為一種拖累。

雖然現有的無障礙引擎架構為 Firefox 提供了良好的服務,但在目前的架構下,Firefox 團隊無法進一步提高速度,而且現有的無障礙引擎過于復雜、難以維護,并且有嚴重的穩定性問題,以及需要在不同的操作系統上采用不同的實現。Firefox 團隊決定重構無障礙引擎,因此 "Cache the World" 項目應運而生。

這個項目的目標就是讓 Firefox 在與屏幕閱讀器和其他輔助技術一起使用時更快,特別是在 Windows 上。根據官方給出的數字(下表提供了在重構之前和之后的時間對比),新架構下 Firefox 在多個場景測試中,速度都有了顯著提升。

例如,從收件箱中打開一封 Gmail 郵件,現在需要100毫秒,而以前需要200毫秒。同樣,關閉 Gmail 郵件并返回收件箱在新架構下需要150毫秒,而在舊架構下需要410毫秒。

在加載大型文件、表格和其他內容時,所取得的成果更加令人印象深刻。對一個大文件的測試,此次性能提升能夠將用時從175秒提高到僅需15秒。在另一個對有超過12000行的表格頁面進行測試時,加載速度從原本的128秒提高到6秒。

在新的架構中,Firefox 異步地將無障礙樹從每個 Web 內容進程推送到主 UI 進程。當輔助技術查詢無障礙樹時,所有的查詢都從緩存中得到響應,而不需要在 Firefox 進程之間進行任何調用。當一個頁面更新時,內容進程異步地將緩存更新推送到主進程。速度的提高遠遠超出了 Firefox 團隊的預期,而且與舊的架構不同,如今他們可以完全控制緩沖區的更新方式和時間,因此還有很大的空間來進一步提高 Firefox 的性能。至于代碼維護,一旦完全發布,將能夠刪除大約20000行代碼,其中大部分是操作系統特有的。

新的架構已經在 Firefox Nightly 中啟用了。如果一切順利,Mozilla 計劃在2023年1月的 Firefox110測試版中為 Windows 和 Linux 用戶啟用這一功能。在此之后將在 Firefox111或112版本中分階段向 Windows 和 Linux 用戶正式推出這一功能。而 Mac 版本還需要更多開發時間,因此會晚一些上線。

標簽: 火狐瀏覽器,火狐瀏覽器,火狐瀏覽器iOS 版,火狐瀏覽器