面向开发者的 Firefox 3.5

Firefox 3.5 (发布于 2009 年 6 月 30 日) 引入了许多全新功能,以及对各种 Web 标准的额外支持和改进。本文提供了详尽的清单,并链接到介绍主要改进的文章。

Firefox 3.5 中的全新开发者功能

面向网站和应用程序开发者

HTML 5 支持

使用音频和视频

Firefox 3.5 添加了对 HTML 5 audiovideo 元素的支持。

Firefox 中的离线资源

Firefox 3.5 现在完全支持 HTML 5 离线资源规范。

拖放

HTML 5 拖放 API 允许支持在网站内部和网站之间拖放项目。这也为扩展和基于 Mozilla 的应用程序提供了一个更简单的 API。

新增支持的 CSS 功能

可下载字体支持

新的 @font-face @规则允许网页提供可下载的字体,以便网站能够完全按照页面作者的预期呈现。

CSS 媒体查询

Firefox 3.5 现在支持 CSS 媒体查询,这增强了对媒体相关样式表的支持。

::before::after 更新到 CSS 2.1

::before::after 伪元素已更新到完全支持 CSS 2.1,添加了对 positionfloatlist-style-* 和一些 display 属性的支持。

ch 长度单位

ch 单位现在可以在任何接受 长度单位 的地方使用。1ch 是“0”(零)字符的宽度。

不透明度

-moz-opacity Mozilla 对 CSS 的扩展已删除,取而代之的是标准的 opacity 属性。

文本阴影

现在支持 text-shadow 属性,该属性允许网页内容指定要应用于文本和文本装饰的阴影效果。

溢出换行

这个新增支持的属性允许内容指定是否允许在单词内换行,以防止当不可换行的字符串过长而无法在一行中容纳时出现溢出。

white-space 属性支持 pre-line

white-space 属性现在接受 pre-line 值。

-moz-box-shadow

-moz-border-image

-moz-column-rule

-moz-column-rule-width

-moz-column-rule-style

-moz-column-rule-color

Firefox 3.5 添加了对这些 Mozilla 对 CSS 的扩展的支持。

-moz-nativehyperlinktext 颜色值

这个新的颜色值代表用户的系统默认超链接颜色。

-moz-window-shadow 属性和 :-moz-system-metric(mac-graphite-theme) 伪类

这些新的 CSS 功能是为了便于主题化而添加的。

-moz-appearance 的新值

-moz-win-glass-moz-mac-unified-toolbar 值已添加到 -moz-appearance

使用 CSS 变换

Firefox 3.5 支持 CSS 变换。有关详细信息,请参阅 -moz-transform-moz-transform-origin

:nth-child:nth-last-child:nth-of-type:nth-last-of-type:first-of-type:last-of-type:only-of-type

这些选择器在 Firefox 3.5 中都是新增支持的。

新的 DOM 功能

localStorage

Firefox 3.5 添加了对 Web 存储 localStorage 属性的支持,该属性提供了一种方法,可以让 Web 应用程序在客户端计算机上本地存储数据。

使用 Web 工作线程

Firefox 3.5 支持 Web 工作线程,以便在 Web 应用程序中轻松实现多线程支持。

使用地理定位

Firefox 3.5 支持地理定位 API,该 API 允许 Web 应用程序获取有关用户当前位置的信息,前提是已安装并启用了提供该信息的提供商。

使用选择器定位 DOM 元素

选择器 API 允许查询文档以定位与给定选择规则匹配的元素。

鼠标手势事件

Firefox 3.5 支持鼠标手势事件,例如触控板滑动。

NodeIterator 对象

NodeIterator 对象提供对 DOM 子树中的节点列表进行迭代的支持。

MozAfterPaint 事件

这个新的 DOM 事件是在窗口中进行绘制更新后发送的。

MozMousePixelScroll 事件

这个新的 DOM 事件允许检测基于像素的鼠标滚轮事件,而不是基于行的滚轮事件。

新的 JavaScript 功能

JavaScript 1.8.1 中的新增功能

JavaScript 1.8.1 中所有更改的概述。

Object.getPrototypeOf()

这个新方法返回指定对象的原型。

使用原生 JSON

Firefox 3.5 原生支持 JSON

String 对象的新 trim 方法

String 对象现在具有 trim()trimLeft()trimRight() 方法。

网络

HTTP 的跨站点访问控制

在 Firefox 3.5 中,现在可以跨域进行 HTTP 请求(包括由 XMLHttpRequest 发出的请求),前提是服务器支持此功能。

XMLHttpRequest 的进度事件

现在提供进度事件,以使扩展能够监视请求的进度。

改进的同步 XMLHttpRequest 支持

在进行同步 XMLHttpRequest 时,现在会抑制 DOM 超时输入事件

控制 DNS 预取

Firefox 3.5 提供 DNS 预取,即提前对当前页面中包含的链接执行域名解析,以便在实际点击链接时节省时间。本文介绍了如何调整您的网站以禁用预取,或调整预取的操作方式。

新的 Canvas 功能

canvas 元素的 HTML 5 文本 API

Canvas 元素现在支持 HTML 5 文本 API。

canvas 中的阴影效果

现在支持 Canvas 阴影效果。

createImageData()

现在支持 Canvas 方法 createImageData(),允许代码专门创建 ImageData 对象,而无需自动创建。通过防止这些方法不得不创建对象,这可以提高其他 ImageData 方法的性能。

moz-opaque 属性

添加了 moz-opaque 属性,该属性使 Canvas 知道是否会考虑半透明性。如果 Canvas 知道不存在半透明性,则可以优化绘制性能。另请参阅 HTMLCanvasElement.mozOpaque

新的 SVG 功能

将 SVG 效果应用于 HTML 内容

您现在可以将 SVG 效果应用于 HTML 和 XHTML 内容;本文介绍了操作方法。

其他新增功能

Firefox 中的 ICC 颜色校正

Firefox 3.5 现在支持对带标签的图像进行 ICC 颜色校正。

defer 属性现在支持 script 元素

此属性指示浏览器可能选择继续解析和呈现页面,而无需等待脚本执行完成。

其他改进

  • 已实现 Text 节点的 wholeText 属性和 Text.replaceWholeText() 方法。
  • 已添加属性 element.children。它返回给定元素的子元素的集合
  • 现在支持属性 HTMLElement.contentEditable,以支持可编辑元素。
  • DOM Element 对象现在支持元素遍历 API。
  • HTML 文档节点现在可以使用 cloneNode() 进行克隆。
  • 非标准 getBoxObjectFor() DOM 方法已删除。您应该改用 getBoundingClientRect()
  • 已派发的 DOM 事件现在可以重新派发。这使得 Firefox 3.5 通过了 Acid 3 测试 30。
  • 已对 DOM 2 范围处理进行了改进。
  • 在非 Chrome 范围中,异常中的捕获对象现在是实际抛出的对象,而不是包含抛出对象的 XPConnect 包装器。
  • SVG ID 引用现在是实时的。
  • SVG 过滤器现在可用于 foreignObject
  • 已向 objectiframe 元素添加了 GetSVGDocument() 方法,以实现兼容性。
  • 在 JavaScript 中,对象和数组初始化器中属性的隐式设置不再执行设置器。
  • gDownloadLastDir.path 变量已重命名为 gDownloadLastDir.file,因为它引用的是 nsIFile,而不是路径。
  • gDownloadLastDirPath 变量已重命名为 gDownloadLastDirFile,因为它引用的是 nsIFile,而不是路径。
  • 从 Firefox 3.5 开始,您不能再在获取 XPCNativeWrapper 自动化的 chrome 包中使用 data: 绑定。

适用于 XUL 和插件开发人员

如果您是扩展开发人员,您应该首先阅读 更新 Firefox 3.5 的扩展程序,它提供了有关可能影响您的扩展程序的更改的有用概述。

新组件和功能

支持私密浏览模式

Firefox 3.5 提供了私密浏览模式,该模式不会记录用户的活动。扩展程序可以按照本文提供的指南支持私密浏览。

Firefox 3.5 中的安全更改

本文介绍了 Firefox 3.5 中与安全相关的更改。

Firefox 3.5 中的主题更改

本文介绍了 Firefox 3.5 中与主题相关的更改。

监控 Wi-Fi 接入点

具有 UniversalXPConnect 权限的代码现在可以监控可用接入点的列表,获取其 SSID、MAC 地址和信号强度的信息。这可以与地理位置相结合,提供基于 Wi-Fi 的位置服务。

显著更改和改进

  • XUL textbox 小部件现在提供 search 类型,可用于搜索字段。
  • 为了支持在窗口之间拖放选项卡,browser 小部件现在具有 swapDocShells() 方法。
  • panel 元素添加了 level 属性;这指定面板是显示在其他应用程序的顶部,还是仅显示在包含面板的窗口的顶部。
  • XUL 元素现在支持 clientHeightclientWidthscrollHeightscrollWidth 属性。
  • keyset 现在包含 disabled 属性。
  • 此外,keyset 现在可以使用节点的 removeChild() 方法删除。
  • mozIStorageStatement 已删除 initialize() 方法;使用者应改用 createStatement() 方法获取新的语句对象。
  • Storage API 现在提供对异步请求的支持。
  • nsICookie2 接口现在在其新的 creationTime 属性中公开了创建 cookie 的时间。
  • nsIProtocolHandler 添加了一个标志 (URI_IS_LOCAL_RESOURCE),在 chrome 注册期间检查该标志,以确保允许注册协议。
  • Firefox 现在在 Linux 上的 /usr/lib/mozilla/plugins 中查找插件,以及以前支持的位置。
  • 插件 API 已更新,包括对私密浏览模式的支持;您现在可以使用 NPN_GetValue() 使用变量 NPNVprivateModeBool 查询私密浏览模式的状态。

面向最终用户的全新功能

用户体验

位置感知浏览

如果您选择,您可以允许 Firefox 3.5 与网站共享有关您当前位置的信息。Firefox 3.5 可以使用有关您连接的网络的信息来共享您的位置。当然,在这样做之前,它会征求您的许可,以确保您的隐私。

开放音频和视频支持

Firefox 3.5 支持使用开放的 Ogg 格式的嵌入式视频和音频,以及用于音频的 WAV。没有插件,没有关于需要安装某些东西的令人困惑的错误消息,而这些东西最终在您的平台上不可用。

本地数据存储

Web 应用程序现在可以使用 Web 存储的本地存储功能在您的计算机上存储数据。这对任何东西都非常有用,从网站首选项到更复杂的数据。

安全和隐私

私密浏览

需要使用其他人的计算机?开启私密浏览模式,您的会话将不会记录任何信息,包括 cookie、历史记录以及任何其他可能包含隐私信息的资料。

更好的隐私控制

隐私偏好设置窗格已完全重新设计,为用户提供更多对他们私密信息的控制。用户可以选择保留或丢弃任何信息,包括历史记录信息、cookie、下载内容和表单字段信息。此外,用户可以指定是否将历史记录和/或书签包含在地址栏的自动建议中,因此您可以在地址栏中键入时,防止私密网址意外弹出。

性能

更快的 JavaScript 性能

JavaScript(“AJAX”中的“J”)在 Firefox 3.5 中使用新的 TraceMonkey JavaScript 引擎得到了极大的加速。Web 应用程序比 Firefox 3 中快得多。

更快的页面渲染

由于“推测解析”等技术,Web 内容在 Firefox 3.5 中绘制得更快。您的用户不需要知道它的含义,除了“它使事物绘制得更快”之外。

另请参阅