Firefox 31发布,包含了ECMAScript 6的新特性

Posted InfoQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firefox 31发布,包含了ECMAScript 6的新特性相关的知识,希望对你有一定的参考价值。

Mozilla发布了Firefox 31。这个版本包括了ECMAScript 6的新特性、恶意文件检测以及为游戏开发者提供的一些新特性。


ECMAScript 6是ECMAScript标准的下一个版本,代号“Harmony”或“ES.next”。在文章《Firefox 31开发者指南》中,Mozilla团队列出了javascript方面的更新。这些改动是根据ECMAScript 6特性的更新而做出的。包括:

  • 新的数组内建函数:Array.prototype.fill(),这个函数将使用一个静态值填充指定范围的所有数组元素。这个范围由一个开始索引和一个结束索引给出。

  • 新的数学函数:Math.clz32()返回一个数值,表示当一个数字用32位2进制表示时开头0的个数。

  • 新的字符串内建函数:String.prototype.normalize(),对于Firefox桌面版可用。它将返回一个给定字符串的Unicode标准化形式(如果给定的不是字符串,它将先被转成字符串,然后再进行Unicode标准化)。

  • 新的对象方法Object.setPrototypeOf(),将指定对象的原型(即对象中的[[Prototype]]属性)设定为另一个对象或null。

  • 新的数字常量:Number.MAXSAFEINTEGER表示JavaScript中最大的可用整数;Number.MINSAFEINTEGER表示JavaScript中最小的可用整数。


关于Firefox已经支持的ECMAScript 6的特性,可以在https://developer.mozilla.org/en/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla找到一份详细的列表。


除了JavaScript的更新,新的Firefox 31发行版也对开发者工具进行了改进,包括页面控制台(Web Console)中默认启动警告、网络监视器(Network Monitor)中提供“copy as cURL”命令(把网络请求转换成cURL命令并保存到剪切板中,这样你就可以用命令行的方式发送这个请求),以及“保持网络监视器日志的选项”。


Mozilla在《Firefox 31开发者指南》的后半部分进行了详细阐述:


默认情况下,网络监视器将显示一个列表,包含了加载当前页面时所有的网络请求。列表中每一行显示一个请求。


当你浏览一个新页面或者刷新当前页面时,网络监视器将清除上一次的列表内容。从Firefox 31开始,为了使网络监视器不执行清除操作,你可以在配置中勾选“开启保持日志(Enable persistent logs)”选项。


Firefox 31也带来了新的恶意文件检测功能。MozillaWiki对这个特性给出了高度的概括:


无论何时,当一个二进制文件完成下载后,user-agent会进行本地查表,以判断是否是恶意文件。对于Windows,如果本地查表没有结果,user-agent可能会执行一次远程查表。


当一个二进制文件完成下载后,user-agent会提取文件的一些元数据,包括:

  • 下载文件的目标URL、引用URL以及重定向链中的任何URL。

  • 通过SHA-256算法对文件内容进行计算得到的哈希值。

  • 任何通过Windows Authenticode API获得的证书验证信息。

  • 文件长度。

  • 下载时推荐保存的文件名。


通过使用这些元数据,user-agent在一个阻止列表中进行查找。如果下载是允许的,它还会检查一个允许列表。如果这个二进制文件被签名了,那么签名信息会和允许列表中的进行核对。


如果在阻止列表中被匹配,user-agent将不会保存这个文件。如果在允许列表中被匹配,user-agent可能会认为这个二进制文件是可信的,并跳过远程查表的过程。如果没有匹配,且这个二进制文件没有签名,user-agent可能会通过应用信誉服务(application reputation service)进行一次远程查表。


Firefox 31的恶意文件检测特性在开发者社区引发了讨论。一个匿名用户在Slashdot上发表了一篇名为《Firefox 31发布》的文章,评论到:“'对下载文件进行恶意文件检查和阻止'是对隐私的严重侵犯。它工作时几乎把每个下载文件的URL都发送给Google。”


在Hacker News上关于FireFox 31的讨论中,也可以看到类似的观点。


用户 TheCraiggers 评论到:


我担心这所牵涉到的隐私问题。尤其是这个特性是隐藏的,并且只有两种方法关闭它。而其中一种需要进入到about:config。大多数人甚至都不知道about:config的存在。如果我没有读改动日志的话,我甚至不知道这个检测一直在运行着。


需要注意的是,在7月23日,Mozilla安全与隐私部门的高级工程经理Sid Stamm,发布了一篇题为《Firefox恶意文件检测特性的改进》的文章。这篇文章介绍了恶意文件检测这个特性,并给出了关闭这个特性的操作步骤。完整的文章可参考MozillaWiki这里。


Stamm告诉InfoQ:



除了关心隐私方面的问题,Firefox 31发行版带来了另一些特性。在文章《为html5游戏开发者提供的资源》中,Mozilla的Hack团队对这些特性进行了描述。他们将这些特性描述成“将帮助HTML5游戏开发者编写和调试更高级的游戏。”


在Firefox开发者工具的众多改进中,包括了对以下工具的更新:JavaScript调试器、样式编辑器、页面查看器(Page Inspector)、代码片段速记器(Scratchpad)、分析器(Profiler)、网络监视器和页面控制台。


其他值得关注的改进还包括往浏览器中加入了一个Canvas调试器(Canvas Debugger)。Mozilla的Hack团队介绍到:


Canvas调试器允许你对所有画布中的调用进行跟踪。这些调用用于生成一帧画面的内容。特定的调用按不同的颜色显示,比如绘画元素或使用指定的着色器。


调试器不仅能用于开发基于WebGL的游戏,也能用于调试使用Canvas 2D开发的游戏。


当使用Canvas调试器时,最常被报告的两个问题是:在生成动画时,使用setInterval代替requestAnimationFrame;检查一个iFrame中的画布元素。


关于Canvas调试器的更多信息,开发者可以阅读《Firefox开发者工具中Canvas调试器的介绍》。关于Firefox 31改动的完整清单,用户和开发者可通过这里的发布记录获取。


InfoQ读者可通过多种方式为Firefox贡献力量,而且Mozilla欢迎这些想成为项目中一员的新人们。详细信息可以在Mozilla开发者网络上获取。另外,开发者网络上也有一些关于如何做的指南。


以上是关于Firefox 31发布,包含了ECMAScript 6的新特性的主要内容,如果未能解决你的问题,请参考以下文章

在 FireFox 中高度为 100% 的内联块包含图像折叠

Firefox 31.1.0 无法播放某些 H.264 视频

FireFox 31 不播放来自 Visual Basic 2013 ASP.NET Web 应用程序项目的视频

属性特征

firefox 31用啥版本的selenium IDE,为啥总是小小的画面,在网页的左边占一点点的位置

如何在 Firefox 中制作包含 div 的 iframe 100% 高度?