写点什么

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

  • 2014-08-12
  • 本文字数:2534 字

    阅读完需:约 8 分钟

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.MAX_SAFE_INTEGER 表示 JavaScript 中最大的可用整数; Number.MIN_SAFE_INTEGER 表示 JavaScript 中最小的可用整数。

关于 Firefox 已经支持的 ECMAScript 6 的特性,可以在这里找到一份详细的列表。

除了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:

任何时候,安全浏览会把相关数据传回 Google。比如一个可疑的钓鱼网页或者恶意文件。这些信息只是用来标记恶意行为,并且只在 Google 内部使用。两周后,除 URL 外的其他信息,如你的 IP 地址,将被删除。

除了关心隐私方面的问题,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 Released; Includes New ECMAScript 6 features


感谢赵震一对本文的审校。

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

2014-08-12 09:162238

评论

发布
暂无评论
发现更多内容

工业数据管理的八大痛点,为何总是治标不治本?一次架构重构告诉你答案

TDengine

tdengine 工业数据 idmp

Fluss:重新定义实时数据分析与 AI 时代的流式存储

Apache Flink

大数据 flink 实时计算 Fluss

微软紧急发布IE浏览器带外安全更新修复关键漏洞

qife122

安全更新 带外发布

隐私作为差异化优势:苹果的零知识实现与匿名中继技术

qife122

隐私保护 Oauth

如何选择适合的LED广告屏?

Dylan

广告 LED LED display LED显示屏 LED屏幕

黑龙江等保测评方法详解

等保测评

全面掌握 Consul:服务注册发现、健康检查、跨数据中心一网打尽

左诗右码

为什么有些企业不用腾讯会议,会单独采购私有化部署的会议系统?

BeeWorks

即时通讯 IM 私有化部署

社区团购小程序系统:专业社区团购解决方案

微擎应用市场

小程序 微信 社区团购

系统性能提升70%,华润万家核心数据库升级

老纪的技术唠嗑局

数据库设计 性能调优 oceanbase

不会写 SQL 也能出报表?积木报表 + AI 30 秒自动生成报表和图表

JEECG低代码

人工智能 AI 报表 积木报表 报表工具

mybatis中<if>条件判断带数字的字符串失效问题

刘大猫

人工智能 深度学习 模式识别 机器视觉 生物特征

从百万到十万:低代码在企业应用系统开发中的成本优化路径

JeeLowCode低代码平台

低代码 低代码, 低代码引擎 低代码工具 低代码技术

快递驿站小程序系统详细介绍

微擎应用市场

小程序 微信 快递

征程 6 | PTQ 精度调优辅助代码,总有你用得上的

地平线开发者

自动驾驶 算法工具链 地平线征程6

如何5分钟内,发布一篇提示词分享的公众号文章

龙正哲

CST基础教程:如何在3D 中添加多针脚集总元件

思茂信息

cst操作 CST软件 CST Studio Suite

选择局域网视频软件,让你的开会数据仅在企业内网流转!

BeeWorks

即时通讯 IM 私有化部署

房产中介租房平台小程序系统

微擎应用市场

小程序 微信 微擎 房产 中介

Milvus 可观测性最佳实践

观测云

Milvus

IBM 研究报告:体育粉丝对AI助力的动态数字内容的需求增长

财见

基于YOLOv8的无人机航拍树木目标检测系统|精准识别【含完整训练源码+部署教程】

申公豹

人工智能

黑龙江等保测评实施流程四阶段

等保测评

Apache IoTDB PMC 主席黄向东:积跬步,至千里,IoTDB 的 2023-2025

Apache IoTDB

昇腾助力中科大团队实现MoE 稀疏大模型并行推理提速超30%

极客天地

长电科技发布2025年中报:面向未来持续加大先进封装投入力度,二季度及上半年营收同创历史新高

财见

8 月中 汇报下近半个月都在做些什么

万少

基于 EventBridge 构筑 AI 领域高效数据集成方案

阿里巴巴云原生

阿里云 云原生 EventBridge

4 款最适合打造灵活工单系统的开源零代码/低代码平台

NocoBase

低代码 零代码 工单 工单管理 开源‘

Firefox 31发布,包含了ECMAScript 6的新特性_JavaScript_James Chesters_InfoQ精选文章