面向开发者的 Firefox 3.5
Firefox 3.5 (发布于 2009 年 6 月 30 日) 引入了许多全新功能,以及对各种 Web 标准的额外支持和改进。本文提供了详尽的清单,并链接到介绍主要改进的文章。
Firefox 3.5 中的全新开发者功能
面向网站和应用程序开发者
HTML 5 支持
- 使用音频和视频
- 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,添加了对position
、float
、list-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
支持 - 控制 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
。 - 已向
object
和iframe
元素添加了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 元素现在支持
clientHeight
、clientWidth
、scrollHeight
和scrollWidth
属性。 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
查询私密浏览模式的状态。
面向最终用户的全新功能
用户体验
安全和隐私
性能
- 更快的 JavaScript 性能
-
JavaScript(“AJAX”中的“J”)在 Firefox 3.5 中使用新的 TraceMonkey JavaScript 引擎得到了极大的加速。Web 应用程序比 Firefox 3 中快得多。
- 更快的页面渲染
-
由于“推测解析”等技术,Web 内容在 Firefox 3.5 中绘制得更快。您的用户不需要知道它的含义,除了“它使事物绘制得更快”之外。