Firefox 29 发布:asm.js 性能提升和新的 Web API

  • James Chesters
  • 丛一

2014 年 6 月 3 日

话题:JavaScriptMozilla语言 & 开发

Mozilla 近日发布了 Firefox 29 版本。在这一版本中,针对用户界面和asm.js的性能提升方面做出了一些改善,并且为开发者提供了更多新的 Web API。

asm.js 是由 Mozilla 开发的一个 JavaScript 子集,它可以使性能密集型的 Web 应用在不使用插件的情况下能够以接近原生应用的速度运行,例如游戏类应用。继 Mozilla 与游戏开发公司 Unity 上个月在 GDC 大会上宣布合作之后,Mozilla Hacks 网站发布了一篇关于 Firefox 性能基线测试的文章,测试结果表明 Firefox 在性能方面的表现明显优于其竞争对手。

Firefox 29 也为开发者提供了一些新的 Web API,包括网络音频 API(Web Audio API),CSS Flexbox 和最终确定并启用的游戏摇杆 API(Gamepad API)。据 Firefox 桌面工程部门的高级经理 Gavin Sharp 介绍:

将 CSS Flexbox 整合到 Firefox 中,使开发者可以更加容易地构建能够适应浏览器窗口大小的用户界面或根据字体大小自动调整的弹性布局。这一特性能够帮助开发者为其网站或 Web 应用创建跨桌面和移动端的一致的用户界面。通过网络音频 API,开发者可以构建强大音频引擎,支持位置音频(positional audio)和诸如混响等音频特效,在 Web 上为用户提供融入式的音频体验。这对于游戏开发者来说至关重要。

面向开发者的更新还包括默认启用了 Promise。Promise 接口是一个值代理,在其创建时并不需要知道这个值。通过将某个异步操作的成功或失败与对应的处理函数关联,Promise 让异步方法可以像同步方法一样返回值。这个异步方法返回的是代表将来某时点的值的 Promise,而不是最终的值。

对于普通用户来说,Mozilla 在其更新说明中将 Firefox 29 新的用户界面设计描述为“让您轻松专注于 Web 内容的全新设计”

我们的目标是重新构想和设计 Firefox 来反映人们使用 Web 的现状。最引人注目的是其全新的设计……后台选项卡的淡化让您可以更专注于当前的选项卡,并仍能有效地管理大量的标签。为了搭配全新的设计,我们还在 Firefox 中增加了新的菜单和定制模式,让用户可以方便地定制浏览器,满足自己个性化的需要。Firefox 一直以来都是可定制化程度最高的浏览器,在最新版本中我们将进一步发扬这一特性。对这个新的定制模式我们相当引以为豪,特别是它对令人啧啧称赞的附加组件生态系统的完善。

不过 Firefox 社区对这一全新设计的反应并不那么热烈。社交新闻网站 Reddit 的 Firefox 讨论区中有人发起了一项民意测验“你是否喜欢 Firefox 29 的‘Australis’用户界面?”。测验结果显示 50% 的受访者不喜欢新的用户界面,而只有 32% 的受访者选择“喜欢”。用户 UglierThanMoe 如此评论:“新的设计实在是让我觉得不舒服,可让我更失望的是 Mozilla 完全不需要将定制化做的如此复杂。”

不过,也有人对新版本 Firefox 的设计进行辩护。用户 beardeddragonborn 在一篇名为“就我个人来说,还是喜欢 29”的帖子中提到“我的确认为新版本 Firefox 打破了其原有的定制化模式。不过我仍对 Firefox 29 感到激动,它填补了 Firefox 长久以来在我内心里遗留下的一项空白。”

Hacker News 上有些人对新版本的反应也很冷淡。用户 dilap评论:“我热爱 Firefox——为其所做的,所代表的,所守护的……但是它在 Mac 上的表现从未让我感到满意,新版本仍然如此。”

Neue Mediengesellschaft Ulm mbH 公司的开发者媒体部门负责人 Florian Bender 在回复 Next Web 上的一篇文章的评论时提到:

有些人觉得 Mozilla 没有做好它应该做的事,对于这些人,我鼓励他们仔细了解并参与到 Mozilla 的社区中。Firefox 与 Mozilla 所有的项目一样,从概念到实施都是完全开源的,任何人都可以通过反馈意见甚至是编写代码来参与,帮助和推进项目。

Mozilla 表示他们欢迎所有想要参与到项目中的新人,而对于 InfoQ 的读者来说,可以通过多种方式为 Firefox 做出贡献。在Mozilla 开发者网络上有一个完整的列表,可以从列表中选择不同的贡献方式,在开发者网络上 Mozilla 还发布了一系列How To指引,帮助贡献者了解如何为 Mozilla 开发者网络做出贡献。

Firefox 29 中另外一项重要的更新就是引入 Firefox Sync。通过 Firefox Sync,用户可以在计算机和 Android 移动设备之间同步 Firefox 的数据,使桌面和移动端之间能够建立更加紧密的联系,这也是 Mozilla 一直以来的目标。

新版本的其他更新还包括多个安全方面的补丁,包括“严重”级的问题MFSA 2014-44“在图片调整大小时被使用后释放的 imgLoader 对象”,MFSA 2014-42“通过 Web 通知 API 提升权限”,MFSA 2014-39“HTML 视频文本跟踪管理器的使用后释放”和MFSA 2014-34“几个内存安全隐患问题”。

今年十一月份将是 Firefox 1.0 发布的第十个年头。

参考英文原文:Firefox 29 Brings Improvements in asm.js Performance, New Web API


感谢马国耀对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

JavaScriptMozilla语言 & 开发