Firefox 49 开发者版
要测试 Firefox 的最新开发者功能,请安装 Firefox 开发者版 Firefox 49 于 2016 年 9 月 20 日发布。本文列出了对 Web 开发人员、Firefox 和 Gecko 开发人员以及附加组件开发人员都非常有用的关键更改。
Web 开发人员的更改
开发者工具
- 记录到控制台的 JavaScript 错误 现在提供了 [了解更多] 链接,以便提供更多调试帮助 (Firefox 错误 1179876).
- CSS 自动完成:在自动完成弹出窗口中显示更多建议 (Firefox 错误 1260419).
- 动画检查器现在 在 DevTools 中公开动画性能信息 (Firefox 错误 1254408).
- 检查器上下文菜单 已经过重新组织,使其更简洁易用 (Firefox 错误 1211613).
- 检查器现在支持
#RRGGBBAA
和#RGBA
语法来表示颜色值 (Firefox 错误 1271191). - 开发者工具不再在 HTML 页面上显示自闭合标签(例如
<br>
和<img>
)仿佛它们有闭合标签;对于 XHTML 页面,行为保持不变 (Firefox 错误 820926). - 无障碍性改进!
- 工具箱在确保键盘焦点更明显方面做得更好 (Firefox 错误 1242851).
- 已将无障碍性标签添加到未标记的控件 (Firefox 错误 1242715).
- 已将正确的树视图语义和键盘导航添加到检查器的标记视图 (Firefox 错误 1242694).
- 网络监控器 现在显示“原因”列,提供有关导致每个特定网络请求的原因的指示 (Firefox 错误 1134073).
- 在“about:debugging”附加组件页面中,“重新加载”按钮仅对临时附加组件启用。它将对所有其他附加组件禁用 (Firefox 错误 1273184).
- 在“about:debugging”工作线程页面中,如果 服务工作线程与当前浏览器配置不兼容,将在“服务工作线程”部分显示警告消息 (Firefox 错误 1266415).
- “about:debugging”现在提供了一个 新的标签页面,其中提供当前 Firefox 实例中所有可调试标签的完整列表 (Firefox 错误 1266128).
- 在 工具箱高级设置 中的“禁用缓存”选项已重命名为“禁用 HTTP 缓存”,以便更清楚地表明这会影响 HTTP 缓存,而不是 服务工作线程/Cache API (bug(1253018)).
- 存储检查器现在允许通过其自身的上下文菜单删除 IndexedDB 数据库 (Firefox 错误 1205123),如果由于某些原因无法删除 IndexedDB(例如,如果仍存在活动连接),它将显示警告消息 (Firefox 错误 1268460).
HTML
- 添加了对
<details>
和<summary>
元素的支持 (Firefox 错误 1226455). pattern
属性现在在底层 JavaScriptRegExp
中使用'u'
参数 (Firefox 错误 1227906).- 为了匹配规范更改,
kind
属性的无效值现在被视为"metadata"
而不是"subtitles"
(Firefox 错误 1269712). <iframe>
元素的sandbox
属性现在支持'allow-popups-to-escape-sandbox'
和'allow-modals'
值 (Firefox 错误 1190641).- 对微数据属性和 Microdata API 的支持已被删除 (Firefox 错误 909633).
referrerpolicy
属性现在支持'no-referrer-when-downgrade
' 和'origin-when-cross-origin'
(Firefox 错误 1178337).form
内容属性已被删除。HTMLLabelElement.form
属性仍然存在,但现在返回与标签的控件关联的表单(如果有控件,并且该控件与表单相关联) (Firefox 错误 1268852).
CSS
- 添加了
background-position-x
和background-position-y
,它们允许分别指定绘制背景图像的水平和垂直偏移量;这些是background-position
的组成部分 (Firefox 错误 550426). - 添加了对
background-repeat
的round
和space
关键字的支持 (Firefox 错误 548372). - 在
background-clip
上,text
关键字现在默认激活 (Firefox 错误 1264905). - 添加了对使用 4 位和 8 位 CSS 十六进制 颜色 值(#RRGGBBAA 和 #RGBA)指定具有 alpha 通道的颜色值的支持 (Firefox 错误 567283).
- 伪类
:dir
已取消前缀 (Firefox 错误 859301). - 在我们对
clip-path
的实验性实现(尚未默认激活)中,我们现在可以在<basic-shape>
值之间进行插值 (Firefox 错误 1110460). - 添加了
q
长度单位 (Firefox 错误 1274526). - 属性
text-align-last
已取消前缀 (Firefox 错误 1039541). - 添加了对
overflow-wrap
的支持,它取代了word-wrap
,word-wrap
仍然作为替代名称支持 (Firefox 错误 955857). - 我们的实验性 CSS 网格 实现得到了改进
- 实现了
<percentage>
,用于grid-gap
、grid-row-gap
和grid-column-gap
属性 (Firefox 错误 1266268). - 实现了
align
、justify-self
:baseline
和last-baseline
(即“基线自对齐”)的网格布局支持 (Firefox 错误 1221525). - 实现了网格项目基线内容对齐 (Firefox 错误 1256429).
- 实现了
- 我们的实验性 CSS 蒙版 实现得到了改进
mask-origin
属性现在使用border-box
而不是padding-box
作为初始值,以匹配规范 (Firefox 错误 1258286).mask-repeat
属性现在支持space
和round
值 (Firefox 错误 1258626).- 修复了阻止
mask-position
属性动画的问题 (Firefox 错误 1273804).
- 控制
text-emphasis
的首选项已被删除,因此不再能禁用对该属性的支持 (Firefox 错误 1229609).
JavaScript
- ES2015 的
getPrototypeOf()
和setPrototypeOf()
Proxy
陷阱已实现(Firefox 错误 888969)。 - ES2015 的
RegExp.prototype[@@match]()
,RegExp.prototype[@@replace]()
,RegExp.prototype[@@search]()
和RegExp.prototype[@@split]()
方法以及RegExp[@@species]
获取器已实现(Firefox 错误 887016)。 - 已弃用且非标准的
flags
参数(String.prototype.
match
/search
/replace
)已移除(Firefox 错误 1108382)。 - 解析两位数年份时,
Date.parse()
方法的行为已更改,使其与 Google Chrome 浏览器更具互操作性(Firefox 错误 1265136)。
接口/API/DOM
DOM 和 HTML DOM
- 已添加
DOMTokenList.supports()
方法(Firefox 错误 1257849)。 - 已添加
DOMTokenList.replace()
方法(Firefox 错误 1224186)。 URLSearchParams()
构造函数的参数中现在忽略前导'?'
字符(Firefox 错误 1268361)。- 使用
blob:
方案的 URL 的URL.origin
,HTMLAnchorElement.origin
和HTMLAreaElement.origin
返回的值不再是错误的null
,而是通过删除前导blob:
形成的 URL 的来源(Firefox 错误 1270451)。 - 在预渲染模式下,
Document.visibilityState
属性现在返回'prerender'
(Firefox 错误 1069772)。 - 已实现
Window.isSecureContext
属性(Firefox 错误 1162772)。 - 已实现 DOM4 的
Element.before
,Element.after
,Element.replaceWith
,Element.append
和Element.prepend
方法(Firefox 错误 911477)。 - 已移除
TouchList.identifiedTouch()
方法(Firefox 错误 1188539)。 - 默认情况下,调用
Window.open()
时会启用scrollbars
Window
功能。过去,虽然强烈建议启用它,但它不是默认值(Firefox 错误 1257887)。 - 添加了实验性和非标准的
HTMLMediaElement.seekToNextFrame()
方法,该方法允许逐帧浏览视频内容(Firefox 错误 1235301)。虽然鼓励您尝试使用此方法以帮助我们了解其有用性,但不要在生产代码中使用它! - 现在,
HTMLLabelElement.form
属性将返回与标签控件关联的表单(如果存在控件,并且该控件与表单关联)。以前,标签是使用此属性直接与表单关联的(Firefox 错误 1268852)。 - 已添加对
EventTarget.addEventListener()
的第三个参数的支持,该参数可以是Boolean
或EventListenerOptions
(Firefox 错误 1266164 和 Firefox 错误 1266066)。 - 与音频音量相关的
KeyboardEvent.key
值已重命名。"VolumeDown"
现在为"AudioVolumeDown"
,"VolumeUp"
现在为"AudioVolumeUp"
,"VolumeMute"
现在为"AudioVolumeMute"
。这使 Firefox 与 UI 事件规范的最新草案保持一致(Firefox 错误 1272578)。有关所有可用键码的完整列表,请参见 键盘事件的代码值。 - 以前称为
"MozHomeScreen"
,"MozCameraFocusAdjust"
和"MozPhoneCall"
的键现在在 UI 事件规范中具有官方名称:"GoHome"
,"CameraFocus"
和"Call"
。Firefox 49 已更新为使用新名称(Firefox 错误 1272599)。有关所有可用键码的完整列表,请参见 键盘事件的代码值。 - 已移除
"Separator"
和"MediaSkip"
键值,因为它们已弃用且未被使用(Firefox 错误 1232919)。 - 已添加
"Hyper"
和"Super"
键值及其相应的键码,以表示这些旧的修饰键(Firefox 错误 1232919)。 - 已添加两个用于多媒体数字键盘键的键值:
"Key11"
和"Key12"
(Firefox 错误 1232919)。 - 已为音频控制键添加以下新的键值:
"AudioBassBoostToggle"
,"AudioTrebleDown"
和"AudioTrebleUp"
(Firefox 错误 123919)。 - 已为这些麦克风控制键添加键值:
MicrophoneToggle
,MicrophoneVolumeDown
,MicrophoneVolumeUp
和MicrophoneVolumeMute
(Firefox 错误 123919)。 - 已添加新的键值以支持语音识别设备:
SpeechCorrectionList
和SpeechInputToggle
(Firefox 错误 1232919)。 - 已添加新的键值以支持手机上的特殊按钮:
AppSwitch
,Call
,CameraFocus
,EndCall
,GoBack
,GoHome
,HeadsetHook
,LastNumberRedial
,Notification
,MannerMode
和VoiceDial
(Firefox 错误 1232919)。 - 已添加这些新的应用程序键值:
LaunchContacts
和LaunchPhone
(Firefox 错误 1232919)。 - 已添加新的键值以支持电视设备:
TV3DMode
,TVAntennaCable
,TVAudioDescription
,TVAudioDescriptionMixDown
,TVAudioDescriptionMixUp
,TVContentsMenu
,TVDataService
,TVInput
,TVInputComponent1
,TVInputComponent2
,TVInputComposite1
,TVInputComposite2
,TVInputHDMI1
,TVInputHDMI2
,TVInputHDMI3
,TVInputHDMI4
,TVInputVGA1
,TVMediaContext
,TVNetwork
,TVNumberEntry
,TVRadioService
,TVSatellite
,TVSatelliteBS
,TVSatelliteCS
,TVSatelliteToggle
,TVTerrestrialAnalog
,TVTerrestrialDigital
,TVTimer
和DVR
(Firefox 错误 1232919)。 MediaSelect
键值已替换为标准LaunchMediaPlayer
键值(Firefox 错误 1272592)。- 还添加了其他媒体播放器键值。它们是
MediaAudioTrack
,MediaSkipBackward
,MediaSkipForward
,MediaStepBackward
,MediaStepForward
,MediaTopMenu
,NavigateIn
,NavigateNext
,NavigateOut
和NavigatePrevious
(Firefox 错误 1232919)。
画布
- 现在,
CanvasRenderingContext2D.filter
属性(它提供对向画布添加滤镜的支持)默认情况下处于激活状态,不再需要使用首选项启用它(Firefox 错误 1173545)。
WebGL
- 已实现
EXT_color_buffer_float
WebGL 2 扩展(Firefox 错误 1129332)。 - 已实现
webglcontextcreationerror
事件,该事件在 WebGL 上下文创建尝试失败时发送(Firefox 错误 1271478)。使用它可以帮助了解出了什么问题,无论是用于调试还是用于生产错误处理。
IndexedDB
- 您现在可以重命名 IndexedDB 索引;
IDBIndex.name
属性不再是只读的(Firefox 错误 1118028)。 - 您现在还可以重命名
IDBObjectStore
;IDBObjectStore.name
属性不再是只读的(Firefox 错误 1118028)。
服务工作者和相关
- Fetch API 的
Response
对象现在实现了redirected
属性,该属性指示响应是否针对已重定向的请求。请在使用此属性之前查看文档中的安全相关说明(Firefox 错误 1243792)。 - 在 权限 API 中,Firefox 不再支持 'push'
PermissionDescriptor
字典类型(在规范中称为PushPermissionDescriptor
);这是因为 Firefox 依赖于配额系统来控制userVisibleOnly
状态,并且在遇到PushPermissionDescriptor
实例时会抛出错误(Firefox 错误 1266821)。移除此字典后,Firefox 现在会忽略它。
媒体流
- 过去,如果用户只有两种类型的硬件中的一种可用,则对
MediaDevices.getUserMedia()
的调用(请求音频和视频)可能会成功,而该调用请求这两种类型。这个问题已经修复(Firefox 错误 802326)。 - 在以前版本的 Firefox 中,如果用户拒绝访问其中一种设备但未拒绝访问两种匹配设备,则对
MediaDevices.getUserMedia()
的调用(请求音频和视频)可能会成功。这个问题已经修复(Firefox 错误 802326)。这还涉及轻微的用户界面更改,以在提示用户进行权限操作时移除选择“无音频”或“无视频”的选项。 - 已实现
MediaStream.getTrackById()
方法(Firefox 错误 1208390)。
WebRTC
- 已更新
RTCPeerConnection.addTrack()
方法,允许将不是指定流的组件的轨道添加到连接。相反,流用于在连接的接收端对轨道进行分组(Firefox 错误 1271669)。
新的 API
- 在 Nightly 中,
PerformanceObserver
API 现已默认启用。在 Firefox 49 的其他版本中,此 API 未默认启用 (Firefox bug 1271487)。
其他
- 如果设置了
network.http.keep_empty_response_headers_as_empty_string
首选项为true
,则XMLHttpRequest.getResponseHeader()
和XMLHttpRequest.getAllResponseHeaders()
将返回空标题 (Firefox bug 669259)。 - 已删除仅 Firefox OS 的 Data Store API (Firefox bug 1261009)。
Document.onfullscreenchange
和Document.onfullscreenerror
事件处理程序已从Element
中删除,因为它们从未在其中触发过;但是,出于兼容性目的,保留了这些事件处理程序的前缀版本 (Firefox bug 1270386)。请注意,此功能尚未默认启用,而是隐藏在full-screen-api.unprefix.enabled
首选项后面 (Firefox bug 1268749)。- 已将过时的
Document.mozFullScreen
属性取消前缀,变为Document.fullscreen
(Firefox bug 1269157)。请注意,此功能尚未默认启用,而是隐藏在full-screen-api.unprefix.enabled
首选项后面 (Firefox bug 1268749)。 - 如果尝试更改只读属性
Document.fullscreenElement
和Document.fullscreenEnabled
的值,它们将不再抛出异常;相反,新值将被静默忽略,并且设置器函数将成为无操作函数 (Firefox bug 1269798)。 - 现在可以使用
DataTransfer.getData()
从剪贴板检索任何类型的数据:以前,只支持某些 MIME 类型的数据 (Firefox bug 860857)。 - 由于规范已完全重写,因此已删除帧计时 API 的实现,该实现由两个接口
PerformanceCompositeTiming
和PerformanceRenderTiming
组成 (Firefox bug 1271846)。 - 为了与规范匹配,
VTTCue.positionAlign
属性现在返回PositionAlign
枚举,而不是Align
枚举 (Firefox bug 1276129)。 Web 语音 API
的语音合成部分现在已默认启用 (Firefox bug 1268633)。性能时间线 API
现在已在 Nightly 中默认启用(尽管在 Aurora、Beta 或 Release 中没有启用)。install
事件和Window.oninstall
事件处理程序现在支持Web 清单
(Firefox bug 1265279)。- 使用
AudioContext.createPeriodicWave()
方法时,现在可以通过将字典对象作为第三个参数来指定是否应规范化生成的周期性波,该字典对象包含单个参数 -{disableNormalization: true}
(Firefox bug 1265405)。 - 在 WebVTT API 中,
VTTCue.positionAlign
现在根据规范正确地返回PositionAlignSetting
枚举;以前它返回AlignSetting
枚举 (Firefox bug 1276129)。 - Web 语音 API 的语音合成部分现在已在所有桌面浏览器中默认启用 (Firefox bug 1268633)。
Animation()
构造函数现在接受空时间线 (Firefox bug 1096776)。- 如果您已启用
Web 动画
,则KeyframeEffect
属性target
现在已在 Firefox 中受支持 (Firefox bug 1067769)。
MathML
无变化。
SVG
- 已删除对已弃用的
<altGlyph>
、<altGlyphDef>
和<altGlyphItem>
元素的支持 (Firefox bug 1260032)。
音频/视频
无变化。
插件和 Flash
从 Firefox 49 开始,Firefox 默认情况下会阻止某些类型的 Flash 内容,这些内容对于网站正常运行并非必要。此行为由 browser.safebrowsing.blockedURIs.enabled
首选项控制,有助于提高网站和 Firefox 的整体性能,而不会对网站可用性造成重大影响。它还有助于通过消除导致崩溃的主要原因来提高浏览体验的稳定性。被阻止的 Flash 模块包括几个仅用于指纹识别目的的模块,以及一些“超级 Cookie”模块,并且将来可能会扩展到包括更多类型的被阻止模块。有关详细信息,请参见 Firefox bug 1275591。
这标志着迈向无插件未来的旅程的下一步。HTML 非常接近于不再需要插件才能完成工作的阶段。
HTTP
- 已实现
Cache-Control: immutable
指令 (Firefox bug 1267474)。有关更多信息,请参见此 博文。 - 已实现
require-sri-for
Content-Security-Policy
(Firefox bug 1265318)。
网络
- 已更新
代理自动配置 (PAC)
实现。现在,weekdayRange
、dateRange
和timeRange
支持“反向范围”,例如,weekdayRange("SAT", "MON")
将在当前日期为星期六、星期日或星期一时评估为true
(Firefox bug 1251332)。
安全
- 已实现
Window.isSecureContext
属性,该属性指示上下文是否能够使用需要 安全上下文 的功能 (Firefox bug 1162772)。
兼容性
为了提高与现有内容的兼容性,Firefox 现在接受一些 WebKit 前缀属性和属性。
- 以下属性现在也支持使用
-webkit
前缀-webkit-align-items
-webkit-align-content
-webkit-align-self
-webkit-animation
-webkit-animation-delay
-webkit-animation-direction
-webkit-animation-duration
-webkit-animation-fill-mode
-webkit-animation-iteration-count
-webkit-animation-name
-webkit-animation-play-state
-webkit-animation-timing-function
-webkit-backface-visibility
-webkit-background-clip
-webkit-background-origin
-webkit-background-size
-webkit-border-bottom-left-radius
-webkit-border-bottom-right-radius
-webkit-border-image
-webkit-border-top-left-radius
-webkit-border-top-right-radius
-webkit-border-radius
-webkit-box-shadow
-webkit-filter
-webkit-flex
-webkit-flex-basis
-webkit-flex-direction
-webkit-flex-flow
-webkit-flex-grow
-webkit-flex-shrink
-webkit-flex-wrap
-webkit-justify-content
-webkit-order
-webkit-perspective
-webkit-perspective-origin
-webkit-text-size-adjust
-webkit-transform
-webkit-transform-origin
-webkit-transform-style
-webkit-transition
-webkit-transition-delay
-webkit-transition-duration
-webkit-transition-property
-webkit-transition-timing-function
-webkit-user-select
- 以下属性映射到等效的前缀属性
-webkit-box-flex
-webkit-box-ordinal-group
-webkit-box-orient
-webkit-box-align
-webkit-box-pack
- 对于
<image>
值- 以下函数映射到其未前缀的等效函数:
-webkit-linear-gradient()
、-webkit-radial-gradient()
、-webkit-repeating-linear-gradient()
和-webkit-repeating-radial-gradient()
。 - 支持过时的
-webkit-gradient
(并转换为常规渐变)
- 以下函数映射到其未前缀的等效函数:
- 以下
display
值将被转换-webkit-box
为-moz-box
-webkit-flex
为flex
-webkit-inline-box
为inline-flex
-webkit-inline-flex
为-moz-inline-flex
- 以下属性受支持(并且没有映射到任何未前缀的等效属性)
WebKitCSSMatrix
接口是DOMMatrix
的别名- 已实现以下媒体查询功能
-webkit-min-device-pixel-ratio
作为min-resolution
的别名,具有相同的值(以dppx
为单位),尽管此功能默认情况下是 禁用的(位于 about:config 首选项layout.css.prefixes.device-pixel-ratio-webkit
后面)-webkit-max-device-pixel-ratio
作为max-resolution
的别名,具有相同的值(以dppx
为单位);此功能也是默认情况下禁用的,位于相同的 about:config 首选项后面。-webkit-transform-3d
始终匹配,指示支持 3d 转换。
附加组件和 Mozilla 开发人员的更改
WebExtensions
- 已添加对
history
的支持。这提供了对浏览器历史记录的访问权限,并提供可用于搜索历史记录、获取有关先前访问页面的信息以及添加和删除历史记录条目的方法。 - 已将
tabs.removeCSS()
方法添加到选项卡 API 中。此方法允许您删除之前通过调用tabs.insertCSS()
注入的 CSS。
接口
- 在
EventTarget.addEventListener()
中,mozSystemGroup
值(仅在 XBL 或 Firefox 的 chrome 中运行的代码中有效)是一个Boolean
,指示监听器是否添加到系统组中。(Firefox bug 1274520)
其他
无变化。
旧版本
- Firefox 48 开发者版
- Firefox 47 开发者版
- Firefox 46 开发者版
- Firefox 45 开发者版
- Firefox 44 开发者版
- Firefox 43 开发者版
- Firefox 42 开发者版
- Firefox 41 开发者版
- Firefox 40 开发者版
- Firefox 39 开发者版
- Firefox 38 开发者版
- Firefox 37 开发者版
- Firefox 36 开发者版
- Firefox 35 开发者版
- Firefox 34 开发者版
- Firefox 33 开发者版
- Firefox 32 开发者版
- Firefox 31 开发者版
- Firefox 30 开发者版
- Firefox 29 开发者版
- Firefox 28 开发者版
- Firefox 27 开发者版
- Firefox 26 开发者版
- Firefox 25 开发者版
- Firefox 24 开发者版
- Firefox 23 开发者版
- Firefox 22 开发者版
- Firefox 21 开发者版
- Firefox 20 开发者版
- Firefox 19 开发者版
- Firefox 18 开发者版