Firefox UI已迁移至Web Components
這不是一項一蹴而就的工程,Mozilla 開發者表示團隊花費了大約兩年的時間,采用“增量更新”的方式才逐漸將 Firefox UI 遷移至使用 Web Components 構建。
Mozilla 開發者 Brian Grinstead 在博客宣布,經過多年的努力,他已在幾個星期前從 Firefox UI 中移除了 XBL,亦即意味著將 Firefox UI 遷移至使用 Web Components 構建的工程已完成。
XBL 是一種基于 XML 的語言,當我們要實現附加到 DOM 元素的“綁定”就需要使用 XBL。然后,我們還可以將自定義 JS 屬性和匿名內容添加到常規元素。XBL 是在90年代末期為 NetScape 設計和構建的,除了 XBL,還有許多其他的“XUL”特性可幫助我們構建桌面 Web 應用 —— 比 Web 平臺提供相似的功能早得多。
Firefox 大約有?300 個 XBL 綁定和?50000 行相關代碼,主要都是被比較小型的部件使用(如<toolbarbutton label="Reload" />),以及用于管理應用程序(如<tabbrowser />,它通過管理標簽在瀏覽器窗口中控制大部分狀態,以及從內容頁面接收消息等)。
我們可以將 Firefox UI 看作是一個非常大型的單頁應用程序,最初采用 DOM 和 JS 構建,相對于 20 多年前的原生應用,它的技術選型十分大膽。也正因為 Mozilla 走得太超前 ,所以在 Web 平臺尚未支持它們之前就自己實現了構建復雜 Web 應用所需的部分特性。這些特性在日后也逐漸演變成像 CSS flexbox 和 Web Components 這樣的標準規范。
處于這種新老交替的時刻,讓現有代碼庫繼續使用原版本,并要求平臺同時支持兩者當然是最容易的,畢竟對舊代碼進行重寫十分困難而且成本巨大。
然而即便如此,Mozilla 還是選擇在 Firefox 中實現 Web Components,他們啟動了一個“并行”項目,在該項目中,團隊將遷移現有的 UI 組件以使用它們。他們以“增量更新”的方式進行此操作,以便在保證 Firefox 正常運行的同時進行每個獨立的更改,而不是從頭開始創建一個分支來重寫 UI。
Brian 認為這是一項重大的成就,也給 Firefox 的底層提供了改進,還允許團隊可以將精力集中在現代 Web 標準上,并移除沒有對外公開的大量重復和復雜的功能。
至于為什么要使用 Web Components,Brian 表示由于 XBL 存在的問題,多年來團隊一直在討論移除 XBL。但這項工程似乎十分龐大,并且看起來好像需要從頭開始重寫 Firefox UI,所以一直沒能有效推動項目的進展。
后來團隊進行了“設計審查”,并提議啟動“并行項目”計劃,以實現采用“增量更新”的方式實現遷移的目標。由于兩者的模型非常相似,因此開發者在遷移元素時能做出合理的選擇,以盡可能保持 API 的兼容性。
總結
以上是生活随笔為你收集整理的Firefox UI已迁移至Web Components的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Code Runner for VS C
- 下一篇: .Net线程同步技术解读