Firefox 65 的开发者说明
本文提供了有关 Firefox 65 中影响开发者的变更信息。Firefox 65 于 2019 年 1 月 29 日发布。
为 Web 开发者带来的变化
开发者工具
- 现已默认启用 Flexbox 检查器。
- 现已添加 JavaScript 调试器的 XHR 断点支持(Firefox bug 821610)。
- 从无障碍环境查看器右键单击无障碍树中的项目,可将其以 JSON 格式打印到 JSON 查看器。
- 无障碍选取器的颜色对比度显示已更新,如果文本背景复杂(如渐变或复杂图像),则会显示一系列颜色对比度值。
- 网络监控器 的“标头”标签页现在会显示所选请求的 referrer 策略(Firefox bug 1496742)。
- 在显示堆栈跟踪时(例如在控制台日志或 JavaScript 调试器中),对框架方法的调用会被识别出来并默认折叠,这样就能更轻松地锁定代码。
- 现在,你可以使用与本地终端相同的反向搜索方式查找 JavaScript 控制台历史记录中的条目(Windows/Linux 上使用
F9
或 macOS 上使用Ctrl
+R
,然后键入搜索词,接着使用Ctrl
+R
/Ctrl
+S
来切换搜索结果)。 - JavaScript 控制台的
$0
快捷键(引用页面上当前检查的元素)现在可以使用自动补全功能,例如,可以键入$0.te
以获得$0.textContent
等属性的自动补全建议。 - Inspector 中“规则”视图中作出的编辑会在“更改”面板中列出(Firefox bug 1503920)。
HTML
- 现在会对禁用 HTML 元素(即设置了
disabled
属性的<button>
、<fieldset>
、<input>
、<select>
和<textarea>
元素)派发事件(Firefox bug 329509)。 - 移除
<iframe>
元素的src
属性后,about:blank
会被加载到该元素中,从而与 Chrome 和 Safari 保持一致(Firefox bug 1507842)。以前,删除src
对iframe
内容没有任何影响。 - 已在
<script>
元素上添加了对referrerpolicy
属性的支持(Firefox bug 1460920)。
CSS
-
image-rendering
属性的crisp-edges
值现已取消前缀化(Firefox bug 1496617)。 -
scrollbar-color
的auto
值现已解析为auto
,而不是两种颜色(Firefox bug 1501418)。 -
现一实现
break-*
属性,且遗留的page-break-*
属性已经成为它们的别名(Firefox bug 775618):break-before
现在是page-break-before
的别名。break-after
现在是page-break-after
的别名。break-inside
现在是page-break-inside
的别名。
-
现已实现
overflow-wrap
属性的anywhere
值(Firefox bug 1505786)。 -
现已实现
steps()
时间函数中使用的新步骤位置关键字jump-start
、jump-end
、jump-none
和jump-both
(Firefox bug 1496619)。这也与frames()
定时函数的移除不谋而合,该函数是以前实现此类功能的方法,现已弃用。 -
为了与其他浏览器兼容,新增了一些新的
-webkit-appearance
值,特别是:meter
,现在用作 UA 样式表中<meter>
元素的默认值。现有值meterbar
现在是meter
的别名(Firefox bug 1501483)。progress-bar
,现在用作 UA 样式表中<progress>
元素的默认值。现有值progressbar
现在是progress-bar
的别名(Firefox bug 1501506)。textarea
,现在用作 UA 样式表中<textarea>
元素的默认值。现有值textfield-multiline
现在是textarea
的别名(Firefox bug 1507905)。
-
已更改
user-select
的行为,使其更符合其他浏览器的要求(Firefox bug 1506547)。具体如下:-
在元素上设置的
user-select: all
不再覆盖在该元素的子元素上设置的其他user-select
值。因此,例如在以下代码段中:html<div style="-webkit-user-select: all"> All <div style="-webkit-user-select: none">None</div> </div>
设置了
none
的<div>
现在不可选择。以前,该值会被父元素上设置的all
值覆盖。 -
嵌套在
contenteditable
元素内的非contenteditable
元素现在可以选择。 -
user-select
现在在影子 DOM 内外表现一致。 -
删除了专有的
-moz-text
值。
-
-
已实现 CSS 环境变量(
env()
函数)(Firefox bug 1462233)。
移除
- 已移除
layout.css.shape-outside.enabled
首选项;不再能通过about:config
禁用shape-outside
、shape-margin
和shape-image-threshold
(Firefox bug 1504387)。 - 删除了
user-select
属性中几个仅适用于 Firefox 的值——moz-all
、moz-text
、tri-state
、element
、elements
和toggle
。请参见 Firefox bug 1492958 和 Firefox bug 1506547。 - 如上所述,
frames()
时间函数已被删除(Firefox bug 1496619)。
SVG
无变化。
JavaScript
- 现已支持
Intl.RelativeTimeFormat
(Firefox bug 1504334)。 - 字符串的最大长度现为
2**30 - 2
(~1GB),而不是2**28 - 1
(~256MB)(Firefox bug 1509542)。 - 已实现始终指向顶层全局对象的
globalThis
属性(Firefox bug 1317422)。
API
新的 API
- 已默认启用可读流(Firefox bug 1505122)。
- 已默认启用存储访问 API(Firefox bug 1513021)。
DOM
- 已向 Web Worker 暴露
Performance.toJSON()
方法(Firefox bug 1504958)。 - 如果
XMLHttpRequest
请求的内容类型为Blob
,且请求方法不是GET
,现在请求会抛出NetworkError
(Firefox bug 1502599)。 - 已弃用许多 Fullscreen API 特性的
-moz
前缀版本,当遇到这些版本时会在 JavaScript 控制台中显示弃用警告(Firefox bug 1504946)。 Window.createImageBitmap()
和WorkerGlobalScope.createImageBitmap()
现支持将 SVG 图像(SVGImageElement
)作为图像源(Firefox bug 1500768)。
DOM 事件
- 更进一步地,每个事件中仅可调用一次
Window.open()
(Firefox bug 675574)。 keyup
和keydown
事件现在会在 IME 合成时触发,以改善东亚语言用户的跨浏览器兼容性(Firefox bug 354358)。
Web worker
SharedWorkerGlobalScope.connect
的事件对象是MessageEvent
的实例——其data
属性现在是空字符串值,而不是null
(Firefox bug 1508824)。
Fetch 和 Service worker
- 如果第一个参数指定了无效的 URL,
Response.redirect()
方法现在会正确地抛出TypeError
(Firefox bug 1503276)。 - Service worker 使用的
ServiceWorkerContainer.register()
和WorkerGlobalScope.importScripts()
方法现将接受任何具有有效 JavaScript MIME 类型的文件(Firefox bug 1354577)。 - 现支持
FetchEvent.replacesClientId
和FetchEvent.resultingClientId
属性(Firefox bug 1264177)。 - 现已实现
ServiceWorkerGlobalScope.onmessageerror
和ServiceWorkerContainer.onmessageerror
事件处理器属性(Firefox bug 1399446)。 - 方法为
HEAD
或GET
的 Fetch 请求不再设置Origin
标头(Firefox bug 1508661)。
Media、Web Audio 和 WebRTC
- WebRTC
RTCIceCandidateStats
字典已根据最新的规范变更进行了更新(Firefox bug 1324788、Firefox bug 1489040;RTCIceCandidateStats 已更新为最新规范,可详细了解具体的更改内容)。 - 现以实现
MediaRecorder
的pause
和resume
事件(和对应的事件处理器属性)。以前并未实现,尽管兼容性表格声称它们已经实现(Firefox bug 1458538、Firefox bug 1514016)。
Canvas 和 WebGL
- WebGL 的
EXT_texture_compression_bptc
和EXT_texture_compression_rgtc
纹理压缩扩展已经暴露至 WebGL1 和 WebGL2 上下文(Firefox bug 1507263)。
移除
- 已禁用影子树中的变更事件(Firefox bug 1489858)。
- 已移除
MediaStream
非标准的currentTime
属性(Firefox bug 1502927)。 - 已移除
dom.webcomponents.shadowdom.enabled
和dom.webcomponents.customelements.enabled
首选项——将不再能够通过about:config
禁用影子 DOM 和自定义元素(Firefox bug 1503019)。 - 已移除非标准 DOM
text
事件,该事件用于通知浏览器编辑器用户界面 IME 合成字符串数据和选择范围(Firefox bug 1288640)。 keypress
事件不再为除了Enter
键、Shift
+Enter
和Ctrl
+Enter
键组合以外的不可打印按键 触发(Firefox bug 968056)(保留它们的原因是为了实现跨浏览器兼容)。
安全
- 现在对允许的请求头执行了额外的 CORS 限制(Firefox bug 1483815,另请参阅 whatwg fetch issue 382:CORS 安全列表请求标头应根据 RFC 7231 进行限制了解更多详情)。
网络
无变化。
插件
无变化。
WebDriver 一致性(Marionette)
API 变化
WebDriver:ElementSendKeys
现在可以更轻松地处理<input type=file>
交互性检查,并允许隐藏这些元素而不再引发not interactable
错误。如果希望进行严格的交互性检查,则可使用strictFileInteractability
功能(Firefox bug 1502864)。
Bug 修复
- 窗口操作命令
WebDriver:FullscreenWindow
、WebDriver:MinimizeWindow
、WebDriver:MaximizeWindow
和WebDriver:SetWindowRect
变得更加稳定(Firefox bug 1492499)。这意味着在特殊情况下,它们不会再导致无限挂起,而是在无法达到所请求的窗口状态时在 5 秒后超时(Firefox bug 1521527)。 WebDriver:ElementClick
现在能正确计算要点击的元素的中心点,从而允许尺寸为 1x1 像素的交互(Firefox bug 1499360)。
其他
- 对于
unexpected alert open
错误,会提供更多信息(Firefox bug 1502268)。
其他
-
已添加对 WebP 图像的支持(Firefox bug 1294490)。
- 此外,为了在某些情况下促进跨浏览器兼容性,WebP MIMEType(
image/webp
)已被添加到 HTML 文件的标准 HTTP 请求Accept
标头中(Firefox bug 1507691)。
- 此外,为了在某些情况下促进跨浏览器兼容性,WebP MIMEType(
-
Windows 现已默认支持 AV1 编解码器(Firefox bug 1452146)。
为附加组件开发者带来的变化
API 变化
Tabs
-
Tabs API 已得到增强,可支持标签页的后继标签页——标签页可分配一个后继标签页,即关闭后将激活的标签页的 ID(Firefox bug 1500479,更多信息请参阅本博文)。特别是:
tabs.Tab
类型现拥有successorId
属性,可用于存储/读取标签页后续标签页的 ID。tabs.onActivated
事件监听器的回调现拥有一个新参数previousTabId
,其中包含前一个已激活标签页的 ID(如果该标签页仍处于打开状态)。tabs.update()
函数的updateProperties
对象新增了一个可选属性successorTabId
,可用于更新。successorTabId
也会通过tabs.get()
和tabs.query()
等函数返回。- 新函数
tabs.moveInSuccession()
允许批量操作标签页的后续标签页。
Manifest 变化
无变化。
其他
- Firefox for Android 现在支持 WebExtension 主题的
headerURL
/theme_frame
属性(Firefox bug 1429488)。
参见
- Hacks 发布博文:Firefox 65:WebP 支持、Flexbox 检查器、新的工具和平台更新
更早期的版本
- Firefox 64 的开发者说明
- Firefox 63 的开发者说明
- Firefox 62 的开发者说明
- Firefox 61 的开发者说明
- Firefox 60 的开发者说明
- Firefox 59 的开发者说明
- Firefox 58 的开发者说明
- Firefox 57 的开发者说明
- Firefox 56 的开发者说明
- Firefox 55 的开发者说明
- Firefox 54 的开发者说明
- Firefox 53 的开发者说明
- Firefox 52 的开发者说明
- Firefox 51 的开发者说明
- Firefox 50 的开发者说明
- Firefox 49 的开发者说明
- 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 的开发者说明