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

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

3天内不再提示

新老交替,Firefox UI的XBL移除

汽车玩家 来源:开源中国 作者:局长 2019-11-22 10:57 2101次阅读

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

    文章

    188

    浏览量

    33104
  • 应用程序
    +关注

    关注

    37

    文章

    3283

    浏览量

    57761
收藏 人收藏

    相关推荐

    自动化创建UI并解析数据

    *附件:32960_auto.rar备注:Main.vi是ui自动化2.1.vi,配置文件为32960.B.ini。 目前可以实现根据配置文件自动化创建控件并布局,且可以自动解析接收到的数据内容写入
    发表于 12-10 08:41

    自动化创建UI并解析数据

    Labview实现动态增加控件效果 - *附件:32960_auto.rar 备注:Main.vi是ui自动化2.1.vi,配置文件为32960.B.ini。 目前可以实现根据配置文件自动化创建控件
    发表于 11-29 11:26

    Firefox、Chrome和Puppeteer已支持WebDriver BiDi

    近期,我们与 BrowserStack 一起见证了 WebDriver BiDi 在 BrowserStack 中正式投入使用。并且 WebDriver BiDi 也继续得到了完善,Firefox
    的头像 发表于 11-06 16:35 474次阅读

    TPS65987D和TPS65988用户交替模式

    电子发烧友网站提供《TPS65987D和TPS65988用户交替模式.pdf》资料免费下载
    发表于 09-29 11:00 1次下载
    TPS65987D和TPS65988用户<b class='flag-5'>交替</b>模式

    智能传感器改变欧洲杯,让现代足球更智能

    频出的小组赛,刺激紧张的淘汰赛,西班牙与英格兰的决赛大战 ,也即将打响,你更支持那支队伍呢, 是新老交替完成攻守均衡的斗牛士,还是群星闪耀的三狮军团 ,不过要要说的是,肯定有细心的球迷们发现,现代足球与之前有着很多
    的头像 发表于 07-12 09:45 1966次阅读
    智能传感器改变欧洲杯,让现代足球更智能

    VA段码COG液晶屏可个性化灵活设计UI,实现创意UI的高对比高亮多色彩炫酷显示。

    VA段码COG液晶屏可个性化灵活设计UI,实现创意UI的高对比高亮多色彩炫酷显示。
    的头像 发表于 07-11 10:50 592次阅读
    VA段码COG液晶屏可个性化灵活设计<b class='flag-5'>UI</b>,实现创意<b class='flag-5'>UI</b>的高对比高亮多色彩炫酷显示。

    微软调整Copilot Pro服务,移除GPT Builder功能

    微软近日宣布,将于7月10日对其备受瞩目的Copilot Pro服务进行调整,正式移除GPT Builder功能。这项决策距离GPT Builder的发布仅仅过去了短短三个月时间,引起了业界的广泛关注。
    的头像 发表于 06-15 09:41 494次阅读

    Mozilla启动安卓版火狐Firefox浏览器性能调查程序

    来自用户的反馈显示,安卓版 Firefox 浏览器启用遥感测量后,可能会影响网站加载和浏览器启动速度。以 CNN 网站为例,测试数据表明,启用遥感测量后,CPU 加载页面的时间延长了 16.5 秒。
    的头像 发表于 05-31 10:02 525次阅读

    鸿蒙ArkUI:【从代码到UI显示的整体渲染流程】

    方舟开发框架(简称ArkUI)是鸿蒙开发的UI框架,提供如下两种开发范式,我们 **只学声明式开发范式**
    的头像 发表于 05-13 16:06 961次阅读
    鸿蒙ArkUI:【从代码到<b class='flag-5'>UI</b>显示的整体渲染流程】

    Mozilla撤销Firefox 125更新中安全改进

    Firefox 125稳定版致力于改良底层代码,以期更有效地防止用户访问可疑URL地址。其官方描述为:“扩展下载保护得到加强,能够更加积极地阻止来自高风险URL的下载。”
    的头像 发表于 04-23 11:44 433次阅读

    Firefox Nightly新增原生垂直标签特性

    近日,基于Mozilla旗下的Firefox浏览器用户向来期望其能集成垂直标签页功能,这一愿景在Mozilla Connect页面被热烈讨论,迫切欲望仅次于原生标签分组功能以及恢复对PWA应用的支持。
    的头像 发表于 04-03 14:43 845次阅读

    Mozilla重启Firefox原生标签页组研发 

    查阅IT之家2015年报导显示,早在2009年,Firefox即开始提供一款名为Panorama的标签页组功能。然而,根据Mozilla的数据分析,这一功能的实际使用率仅为万分之一,故而在2016年被去除,Mozilla当时推荐用户使用第三方插件予以代替。
    的头像 发表于 03-19 14:16 381次阅读

    Mozilla发布Firefox 123.0稳定版,新添网站兼容性报告工具

    2023年2月20日,Mozilla发布Firefox 123.0稳定版及115.9 ESR版本,并更迭Beta、Dev、Nightly三个开发频道版本至124、125;手机版Firefox亦升级到123.0。
    的头像 发表于 02-20 15:45 699次阅读

    鸿蒙实战开发-全局UI方法的功能

    使用全局UI的方法定义日期滑动选择器弹窗并弹出。
    的头像 发表于 02-02 17:13 630次阅读
    鸿蒙实战开发-全局<b class='flag-5'>UI</b>方法的功能

    Firefox长达21年的 “陈年老bug”,终于被修复了!

    Firefox 的工单记录页面显示,一个在 21 年前发现的 bug 终于被修复了。
    的头像 发表于 01-25 11:08 426次阅读
    <b class='flag-5'>Firefox</b>长达21年的 “陈年老bug”,终于被修复了!