0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

新老交替,Firefox UI的XBL移除

汽车玩家 来源:开源中国 作者:局长 2019-11-22 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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行相关代码,主要都是被比较小型的部件使用(如),以及用于管理应用程序(如,它通过管理标签在浏览器窗口中控制大部分状态,以及从内容页面接收消息等)。

我们可以将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的兼容性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • XML
    XML
    +关注

    关注

    0

    文章

    190

    浏览量

    34611
  • 应用程序
    +关注

    关注

    38

    文章

    3347

    浏览量

    60509
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CAN信号提升能力(SIC)可以移除CAN共模电感吗

    了以前网络拓扑结构中的限制。甚至还可以考虑更低规格的布线解决方案或移除外部铁氧体。 这是否意味着使用具有SIC功能的CAN收发器,可以移除CAN共模电感(Common Chock)? 有哪些资料中有证据表明吗?
    发表于 04-17 10:17

    高效3A降压方案:XBL2596 PCB设计指南

    在电源设计领域,高效率、大电流输出与优异的负载调节能力是核心设计指标。针对3A输出电流的应用场景,选用XBL2596降压转换芯片,可为系统提供稳定可靠的电源转换解决方案。此外,合理优化的电路板
    的头像 发表于 01-31 11:07 997次阅读
    高效3A降压方案:<b class='flag-5'>XBL</b>2596 PCB设计指南

    芯伯乐高效灵活降压方案:XBL1509B PCB设计指南

    的关键环节。对此,芯伯乐主推的开关降压型DC-DC转换芯片——XBL1509B成为工程师开发的理想选择,本文将结合其PCB板设计,提供一整套系统化的设计思路与实施要点。
    的头像 发表于 01-31 11:07 3435次阅读
    芯伯乐高效灵活降压方案:<b class='flag-5'>XBL</b>1509B PCB设计指南

    宽压输入,高效稳压:XBL1509 DCDC降压转换器在机顶盒电源中的设计

    在现代机顶盒的紧凑机身内,一个高效、可靠的电源架构是实现稳定运行的基础。XBL1509作为一款经典的150KHz、3A降压(Buck)DC/DC转换器,凭借其宽输入范围、高集成度和简易的设计,成为
    的头像 发表于 12-30 18:07 710次阅读
    宽压输入,高效稳压:<b class='flag-5'>XBL</b>1509 DCDC降压转换器在机顶盒电源中的设计

    TUSB1046-DCI:USB Type-C DisplayPort交替模式的理想之选

    TUSB1046-DCI:USB Type-C DisplayPort交替模式的理想之选 在当今的电子设备中,高速数据传输和显示功能的需求日益增长。USB Type-C接口凭借其强大的通用性和高速
    的头像 发表于 12-19 10:50 627次阅读

    RUI Builder 图形化UI设计工具

    RUI Builder 图形化UI设计工具 该软件为图形化UI设计软件,搭配瑞佑图形处理器,轻松设计UI界面!主要特色功能: 在PC上直接设计界面,再生成UI渲染源码(.c),程序中
    发表于 12-12 20:14

    FAQ_MA35D1移除RTC时,时钟仍在运行是怎么回事?

    FAQ_MA35D1移除RTC时,时钟仍在运行是怎么回事?
    发表于 09-03 08:13

    如何移除意外添加到项目中或不再需要的板级标注

    在原理图文档中调用 Board Level Annotation Command 时,项目目录中会创建一个特殊文件,文件名包含项目名称及 .ANNOTATION 扩展名。此文件一旦创建,会影响标识符的显示和处理方式。目前无法通过自动化方式移除该文件,本文将向您展示如何手动移除
    的头像 发表于 08-25 11:11 1548次阅读

    HarmonyOS AI辅助编程工具(CodeGenie)UI生成

    UI Generator基于BitFun Platform AI能力平台,用于快速生成可编译、可运行的HarmonyOS UI工程,支持基于已有UI布局文件(XML),快速生成
    发表于 07-10 11:51

    芯伯乐XBL4001 40V/5A降压型DCDC电源芯片推荐

    在电子设备不断追求高性能与低功耗的今天,电源管理芯片的重要性不言而喻。芯伯乐主推的XBLW-XBL4001芯片,凭借其出色的设计与稳定的性能,为电源管理领域带来了一款实用的新选择。一、芯片概述
    的头像 发表于 06-30 18:34 1586次阅读
    芯伯乐<b class='flag-5'>XBL</b>4001 40V/5A降压型DCDC电源芯片推荐

    芯伯乐XBL6019 60V/5A DC-DC升压芯片的优质选择

    PART01芯片概述在电子电路设计领域,芯伯乐推出的XBL6019芯片以其优异的性能和广泛的应用范围受到广泛关注。芯伯乐XBL6019是一款专为升压(boost)、反激(flyback)和正激
    的头像 发表于 06-30 18:34 1249次阅读
    芯伯乐<b class='flag-5'>XBL</b>6019 60V/5A DC-DC升压芯片的优质选择

    请问如何通过OpenVINO™加速启用稳定的扩散 Web UI

    无法运行具有OpenVINO™加速的稳定扩散 Web UI
    发表于 06-24 06:48

    UI开发概述

    基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建应用UI所必需的能力,主要包括: ArkTS ArkTS是优选的主力应用开发语言,围绕
    发表于 06-24 06:36

    使用 ai cude 里面自带的案例训练UI显示异常的原因?怎么解决?

    案例的配置是默认的,显示训练ui更改显示异常
    发表于 06-23 06:21

    【AIBOX 应用案例】通过 U²-Net 实现背景移除

    设计,高效散热,保障在高温运行状态下的运算性能和稳定性,满足各种工业级的应用需求。应用案例:背景移除BackgroundRemoval(背景移除)技术已成为图像处理
    的头像 发表于 06-11 16:32 800次阅读
    【AIBOX 应用案例】通过 U²-Net 实现背景<b class='flag-5'>移除</b>