Firefox 59 面向开发者的发行说明
本文档提供了 Firefox 59 中将影响开发者的变更信息。Firefox 59 于 2018 年 3 月 13 日发布。
Web 开发人员的变更
开发者工具
- 如果响应是 HTML,网络监视器的“响应”选项卡现在会显示渲染 HTML 的预览(Firefox bug 1353319)。
- 存储检查器中显示的 Cookie 信息(参见Cookies)现在包含一个同源列,显示每个 Cookie 的同源状态(Firefox bug 1298370)。
- 标尺工具现在包含一个读数,显示视口的当前尺寸(Firefox bug 1402633)。
- 在响应式设计模式中,您现在可以使用光标键设置屏幕尺寸(Firefox bug 1421663)。有关更多详细信息,请参见设置屏幕尺寸部分。
- 网络监视器“头部”选项卡中的原始头部显示现在包含响应的状态码(Firefox bug 1419401)。
HTML
<textarea>元素的autocomplete属性已实现。这允许您为此元素启用或禁用表单自动填充。
CSS
overscroll-behavior属性及其相关的长属性 —overscroll-behavior-x和overscroll-behavior-y— 已实现(Firefox bug 951793),并且已在所有版本中默认启用(Firefox bug 1428879)。- “特殊元素”(不纯粹由 CSS 盒概念渲染的元素,例如替换元素)在给定
display值为contents时的行为已根据规范进行了更新(Firefox bug 1427292)。有关指定行为的详细信息,请参见附录 B:display: contents 对特殊元素的影响。 positionsticky现在支持适当的HTML 表格部分(例如,<th>元素)(Firefox bug 975644)。calc()现在支持<color>值 —rgb()、rgba()、hsl()和hsla()(Firefox bug 984021)。calc()在媒体查询值中现在受支持Firefox bug 1396057。@documentat-rule 已限制为仅在用户和 UA 样式表中使用(Firefox bug 1035091)。- 实现
font-optical-sizing属性(Firefox bug 1435692)。
SVG
无更改。
JavaScript
无更改。
API
新 API
PointerEvents已在 Firefox 桌面版中启用(Firefox bug 1411467)。
DOM
EventTarget()构造函数已实现(Firefox bug 1379688)。Response()构造函数现在可以为其body参数接受null值,符合规范(Firefox bug 1303025)。
DOM 事件
Service Workers
- 服务工作线程Clients API现在可以查找并与单独浏览器进程中的窗口进行通信(Firefox bug 1293277)。
- 嵌套的 about:blank 和 about:srcdoc iframe 现在将继承其父级的控制服务工作线程。已在(Firefox bug 1293277)和(Firefox bug 1426979)中修复。
- 当服务工作线程向
FetchEvent.respondWith()提供Response时,Response.url值现在将作为最终解析的 URL 传播到拦截的网络请求。过去,FetchEvent.request.url被用于此目的。这意味着,例如,如果服务工作线程拦截样式表或工作线程脚本,则提供的Response.url将用于解析任何相对的@import或importScripts()子资源加载(Firefox bug 1222008)。 - 如果
FetchEvent.request.mode是"same-origin"且提供的Response.type是"cors",则FetchEvent.respondWith()现在将触发网络错误。(Firefox bug 1222008)
媒体和 WebRTC
-
MediaStreamTrack属性MediaStreamTrack.muted,以及事件mute和unmute以及相应的事件处理程序onmute和onunmute,已实现。轨道的muted状态表示该轨道目前无法提供媒体数据。注意:轨道的
muted状态对于通常认为的静音和取消静音轨道没有用。相反,请使用enabled属性;将enabled设置为false会导致轨道仅输出空帧。 -
Firefox 59 在 Android 上现在支持 Apple 的 HTTPS Live Streaming (HLS) 协议,包括音频和视频。这种非标准协议在移动设备上得到支持,以提高与需要它进行移动流媒体的站点的兼容性。目前没有在 Firefox 桌面版上实现它的计划。
-
RTCRtpReceiver方法getContributingSources()和getSynchronizationSources()已实现,以提供有关每个 RTP 流源的信息。然而,在发布之前发生了一个规范变更,我们已默认通过首选项media.peerconnection.rtpsourcesapi.enable禁用这些功能(Firefox bug 1363667、Firefox bug 1430213和Firefox bug 1433236)。 -
RTCRtpTransceiver接口现已实现,因为 Firefox 的 WebRTC 实现现在支持收发器,并且RTCPeerConnection和其他接口已更新,以根据最新规范使用它们。 -
RTCPeerConnection.addTransceiver()方法已添加。此外,addTrack()的行为已更新,以根据需要创建收发器。 -
对WebVTT区域的支持已在 Firefox 58 中实现,但默认禁用。它们现在默认可用(Firefox bug 1415805)。
-
Firefox 现在支持 WebVTT
REGION定义块,其设置列表每行一个设置,而不是所有设置都在 WebVTT 文件的同一行上(Firefox bug 1415821)。
Canvas 和 WebGL
无更改。
CSSOM
CSSNamespaceRule接口及其namespaceURL和prefix属性已实现(Firefox bug 1326514)。
HTTP
无更改。
安全
- 到
data:URL 的顶级导航已被阻止Firefox bug 1401895。有关更多详细信息,请参见阻止 Firefox 59 中到数据 URL 的顶级导航。 X-Frame-Options头部中的SAMEORIGIN指令已更改,现在不仅检查顶级 IFrame 是否同源,还检查其所有祖先(Firefox bug 725490)。- 从与当前文档不同源加载的图像资源不再能够触发 HTTP 身份验证对话框(Firefox bug 1423146)。
- HTTP 身份验证现在使用
utf-8编码(而不是ISO-8859-1)来处理用户名和密码,以与其他浏览器保持一致,并避免Firefox bug 1419658中描述的潜在问题。 - 每天,HSTS 预加载列表都会从 Google 更新。通常这不需要注意,但在此版本中包含了新的 TLD,特别是
.app和.dev。虽然它们是新的 TLD,但开发者可能已经将它们用于本地开发,并对此更改感到惊讶。请注意,应使用保留的 TLD进行本地开发。
插件
无更改。
其他
无更改。
Web 平台移除的内容
HTML
<script>元素的type属性的非标准version参数(例如,type="application/javascript;version=1.8")已删除(Firefox bug 1428745)。
CSS
- 专有的
mozmm<length>单位已删除(Firefox bug 1416564)。 - 专有的
-moz-border-top-colors、-moz-border-right-colors、-moz-border-bottom-colors和-moz-border-left-colors属性已限制为仅在 chrome 代码中使用(Firefox bug 1417200)。
JavaScript
- 非标准条件 catch 子句已删除(Firefox bug 1228841)。
API
- 非标准方法
Event.getPreventDefault()已删除。您应该改用Event.defaultPrevented属性来确定是否在Event上调用了preventDefault()。 - 专有的
Navigator.mozNotification属性和DesktopNotification接口已删除,取而代之的是标准Notifications API(Firefox bug 952453)。 - 专有的
window.external.addSearchEngine()方法已删除(Firefox bug 862147)。另请参见Window.external了解更多详细信息。 - 非标准仅限 Firefox 的
HTMLMediaElement属性mozAutoplayEnabled已删除。
SVG
对 SMIL 的accessKey功能的支持已删除(Firefox bug 1423098)。
其他
对非标准pcast:和feed:协议的支持已从 Firefox 中删除(Firefox bug 1420622)。
面向附加组件和 Mozilla 开发者的变更
WebExtensions
-
主题更新
- 新属性:
colors.background_tab_text,colors.toolbar_field_border - 所有颜色属性现在都支持 Chrome 风格的数组和 CSS 颜色值。
- 新属性:
-
新的浏览器设置
-
新的
tabsAPI -
contextMenusAPI 现在支持“书签”上下文。 -
新的
contentScriptsAPI 允许运行时注册内容脚本。 -
新的
pageAction、browserAction、SidebarActionAPIbrowserAction/pageAction/sidebarAction.set*函数现在接受null来撤消更改。browserAction.isEnabled()、pageAction.isShown()、sidebarAction.isOpen()函数。
-
在
page_action中新增选项,默认显示页面操作。 -
protocol_handlers的新值- "ssb" 用于 Secure Scuttlebutt 通信
- "dat" 用于 DATproject
- "ipfs", "ipns", "dweb" 用于 IPFS
-
新的
privacy.websites设置“cookieConfig”。 -
webRequest中的新选项upgradeToSecure。