Firefox 63 开发者发布说明
本文提供有关 Firefox 63 中将影响开发人员的变更信息。Firefox 63 于 2018 年 10 月 23 日发布。
Web 开发人员的变更
开发者工具
- 页面检查器中的“字体”选项卡现在包含一个编辑器,可以轻松查看和编辑页面上字体的设置。有关详细信息,请参阅编辑字体。
- 可访问性检查器现在默认启用 (Firefox bug 1482454)。
- 当您将鼠标悬停在可访问性检查器中的对象上时,该项目会高亮显示,其角色和名称将显示在页面上的信息栏中 (Firefox bug 1473030)。
- Web 控制台中的命令行现在紧随控制台输出显示 (Firefox bug 1136299)。
- 网络监视器中的内容已添加一个新图标,用于指示 URL 何时属于已知跟踪器 — 请参阅安全图标 (Firefox bug 1333994)。
devtools.aboutdebugging.showSystemAddons的默认值现在为false,这意味着系统附加组件不会列在about:debugging页面上。您可以通过导航到about:config更改设置 (Firefox bug 1425347)。- 响应式设计模式工具栏已简化,我们添加了将视口左对齐的选项。
- 页面检查器包含一个指向自定义元素类定义的链接。 (Firefox bug 1443923)。
HTML
- 已添加对
<img>元素的decoding属性的支持 (Firefox bug 1416328);另请参阅HTMLImageElement.decoding。
移除
- 已移除对
sidebar链接类型 (rel="sidebar") 的支持。如果锚标记包含此属性,它将被忽略 (Firefox bug 1452645)。
CSS
- 已添加对
:defined伪类的支持 (Firefox bug 1331334)。 - 在Flexbox 布局中添加了对
row-gap、column-gap和gap的支持 (Firefox bug 1398483)。 - 重新启用对 webkit-前缀像素密度 @media 查询的支持 (Firefox bug 1444139)。
- 添加了对 CSS 弹性盒布局 (Flexbox) 属性
align-self、align-content和align-items以及justify-content属性的支持 (Firefox bug 1472843)。 - 为
offset-path实现了path()函数 (Firefox bug 1429298)。 - 实现了 Media Queries Level 4 规范的语法改进,特别是嵌套布尔表达式和范围语法 (Firefox bug 1422225)。
- 将
offset-*属性重命名为inset-block-start、inset-block-end、inset-inline-start和inset-inline-end(Firefox bug 1464782)。 - 添加了对 prefers-reduced-motion 媒体功能的支持 (Firefox bug 1365045, Firefox bug 1475462)。
- 为
resize属性添加了流相对值 (block,inline) (Firefox bug 1464786)。 - 在
align-self、align-content和justify-content中为safe和unsafe值实现了 flexbox 布局 (Firefox bug 1297774)。 - 逻辑属性 (在适当的情况下) 现在可以动画化 (Firefox bug 1309752)。
移除
- 移除了
offset-block-start、offset-block-end、offset-inline-start和offset-inline-end;如上所述,这些属性已重命名为inset-*(Firefox bug 1464782)。
SVG
无更改。
JavaScript
- 已实现
Symbol.prototype.description属性 (Firefox bug 1472170)。 - 已添加
Object.fromEntries()方法 (Firefox bug 1469019)。 - 当您尝试访问未定义对象的属性时,错误消息现在得到了很大改进。考虑
x未定义且您尝试访问x.y的情况,控制台现在返回更具描述性的 x 未定义;无法访问其“y”属性,而不是“TypeError: x is undefined” (Firefox bug 1259822)。
移除
- 已移除实验性 WebAssembly 模块 IndexedDB 序列化支持 (Firefox bug 1469395)。
API
新 API
- Shadow DOM (Firefox bug 1471947) 和 Custom Elements (Firefox bug 1471948) API 已默认启用;有关详细信息,请参阅 Web 组件。
- 媒体功能 API 已实现 (Firefox bug 1409664)。
- 异步剪贴板 API 已实现并默认启用所有通道 (Firefox bug 1461465)。与 Chrome 一样,Firefox 目前仅实现
writeText()和readText()方法;但是,与 Chrome 不同,readText()仅在 浏览器扩展中可用。 - 现在支持
SecurityPolicyViolationEvent接口。它允许在违反Content-Security-Policy时发送事件 (Firefox bug 1472661)。
DOM
-
以下Web 动画 API 的部分已默认启用 (参阅 Firefox bug 1476158)
Animation属性ready和finished,指定Animation对象的ready和finishedPromise。Animation对象的effect属性。- 接口
KeyframeEffect和AnimationEffect。
-
已实现
Element.toggleAttribute()方法 (Firefox bug 1469592)。 -
出于兼容性目的,现在支持历史的、以前非标准的
Event.returnValue属性 (Firefox bug 1452569)。 -
我们实现了
Window.event属性以提高 Web 兼容性,因为它已成为标准 (Firefox bug 218415)。然而,由于一些 Web 兼容性问题 (例如,Firefox bug 1479964),这在非 Nightly 渠道中很快被禁用,隐藏在dom.window.event.enabled首选项之后 (Firefox bug 1493869)。 -
为了使 Firefox 与 Edge 和 Chrome 保持一致,即使在 64 位 Windows 上运行,
navigator.platform属性现在也返回"Win32"(Firefox bug 1472618)。 -
在 Firefox 63 之前,打开带有
rel="noopener"的新窗口的链接,以及启用noopener窗口功能的Window.open()调用,默认情况下会禁用所有窗口功能,因此您必须明确重新启用您想要的任何标准功能。现在,这些窗口具有与任何其他窗口相同的启用功能集,您需要明确关闭任何您不想要的功能 (Firefox bug 1419960)。
DOM 事件
- 在 Windows 上,键盘右侧
Alt键的处理得到了改进。如果用户当前的键盘布局将Alt键映射到AltGr修改键,则现在将KeyboardEvent.key的值报告为"AltGraph"。此行为与最近在 Chrome 中引入的行为匹配 (Firefox bug 900750)。
媒体、Web Audio 和 WebRTC
- 现在可以在多个选项卡中同时访问麦克风,即使在同一个内容进程中也是如此 (Firefox bug 1404977)。
RTCDataChannel已更新以支持 sctp-sdp-21 数据格式,除了以前支持的 sctp-sdp-05 格式。- Web Audio API 的
ConstantSourceNode节点类型现在默认通道数为 2,而不是 1,以符合规范 (Firefox bug 1413283)。 - 当为节点开始时间指定负值时,Web Audio API 接口
AudioScheduledSourceNode(以及基于它的所有其他节点类型) 现在会抛出正确的异常。该错误是RangeError(Firefox bug 1413284)。 AudioParam对象的value允许的最小值和最大值已分别更改为最小负单精度浮点值 (-340,282,346,638,528,859,811,704,183,484,516,925,440) 和最大正单精度浮点值 (+340,282,346,638,528,859,811,704,183,484,516,925,440) (Firefox bug 1476695)。SourceBuffer.changeType方法已默认启用,它允许您在活动流期间更改编解码器。这是媒体源扩展 API 的一部分 (Firefox bug 1481166)。AudioParam.setValueCurveAtTime()方法已更新,可以正确接受浮点值数组,以指示参数值随时间变化。以前,它需要一个Float32Array(Firefox bug 1421091)。AudioParam.setValueCurveAtTime()也已更新,以便在values数组中找到非有限值时,正确返回适当的TypeError(Firefox bug 1472095)。- 此外,
setValueCurveAtTime()已更新,以确保当参数在持续时间结束后完成遵循指定的价值曲线时,参数的值设置为要通过的价值列表中的最后一个值 (Firefox bug 1308436)。 RTCRTPStreamStats字典已重命名为RTCRtpStreamStats,以与其他 WebRTC 字典和规范保持一致 (Firefox bug 1480498)。- 已添加对
RTCRtpStreamStats字典的kind属性的支持 (Firefox bug 1481851)。 RTCRtpStreamStats字典的isRemote属性已弃用,并将在 Firefox 65 中删除。现在访问此属性时会向控制台输出警告。有关详细信息,请参阅 WebRTC 博客上的这篇博文 (Firefox bug 1393306)。
Canvas 和 WebGL
HTMLCanvasElement.getContext()中添加了一个新的powerPreference上下文属性。在 macOS 上,这允许 WebGL 非性能关键型应用程序和小程序在多 GPU 系统中请求低功耗 GPU,而不是高功耗 GPU (Firefox bug 1349799)。
移除
- 已移除过时且非标准的仅 Firefox 方法
Window.back()和Window.forward()。请改用window.history.back()和window.history.forward()方法 (Firefox bug 1479486)。 - 由于它们可能引入内存泄漏,
URL.createObjectURL()和URL.revokeObjectURL()方法不再在ServiceWorker实例上可用 (Firefox bug 1264182)。 - 由于规范中已弃用,Web Audio API 已移除对
PannerNode多普勒效应的有限支持。AudioListener属性dopplerFactor和speedOfSound已移除,同时移除了PannerNode方法setVelocity()(Firefox bug 1148354)。
CSSOM
无更改。
HTTP
- 已实现
Clear-Site-Data头,不再隐藏在首选项之后 (Firefox bug 1470111)。
安全
- 如果站点配置了 内容安全策略,则站点图标现在受其约束 (Firefox bug 1297156)。
- 在生成违规报告时,现在可以识别 CSP
script-src指令的'report-sample'表达式。此指令表示报告中应包含违规发生位置的简短示例。以前,Firefox 总是包含此示例 (Firefox bug 1473218)。 - Firefox 现在使用 NSS 3.39 (Firefox bug 1470914)。
插件
无更改。
WebDriver 符合性 (Marionette)
新功能
- Marionette 现在在
WebDriver:NewSession响应中返回一个setWindowRect功能,如果浏览器窗口可以重新定位和调整大小,则为 true,例如 Firefox 就是这种情况,但任何移动应用程序都不是 (Firefox bug 1470659)。 - 添加了对
unhandledPromptBehavior功能的支持,该功能允许定义 WebDriver 规范的特定提示行为 (Firefox bug 1264259)。 - 已将用户提示处理添加到
WebDriver:ExecuteScript和WebDriver:ExecuteAsyncScript命令 (Firefox bug 1439995)。
API 更改
- 已移除没有
WebDriver:前缀的已弃用命令端点 (Firefox bug 1451725)。 WebDriver:NewSession命令为platformName返回 WebDriver 规范中定义的推荐字符串 (linux,mac,windows) (Firefox bug 1470646)。
错误修复
- 当 Firefox 未作为最顶层应用程序运行时,元素交互时缺少焦点相关事件 (Firefox bug 1398111)。
- 在后续操作序列中执行
pointerDown和pointerUp操作可能会触发双击,因为WebDriver:ReleaseActions没有重置双击跟踪器 (Firefox bug 1422583)。 - 重复执行
pause操作可能会导致无限挂起 (Firefox bug 1447449)。 - 修复了一个错误,该错误导致从
WebDriver:ExecuteScript和WebDriver:ExecuteAsyncScript返回元素集合时会产生循环引用错误 (Firefox bug 1447977)。 - 为防止竞态条件,
WebDriver:AcceptAlert和WebDriver:DismissAlert命令现在都会等到用户提示关闭 (Firefox bug 1479368)。 - 帧脚本发出的日志条目不再受
MarionettePrefs.logLevel限制,而是记录所有内容 (Firefox bug 1482829)。 - 当截取宽度或高度超过 32767 像素的窗口截图时,
WebDriver:TakeScreenshot会引发错误 (Firefox bug 1485730)。 - 如果发送的文本为空字符串,
WebDriver:SendAlertText没有替换默认的用户提示值 (Firefox bug 1486485)。
其他
- 更正了
PerformanceObserver.observe()的行为,如果指定的观察条目类型数组中没有找到有效的条目类型,或者数组为空或缺失,则不执行任何操作。以前,Firefox 错误地抛出了TypeError(Firefox bug 1403027)。 - 在 OpenSearch 中,Firefox 现在接受
application/json作为搜索 URL 类型,作为application/x-suggestions+json的别名 (Firefox bug 1425827)。
附加组件开发人员的变更
API 更改
主题
-
browserAction徽章的默认文本颜色现在会自动设置为黑色或白色,以最大化与背景的对比度 (Firefox bug 1474110)。 -
theme清单键的accentcolor和textcolor属性现在是可选的 (Firefox bug 1413144)。 -
browserAction.getBadgeTextColor()和browserAction.setBadgeTextColor()允许您获取和设置浏览器操作徽章的文本颜色 (Firefox bug 1424620)。 -
manifest.json中的主题colors键现在支持ntp_text属性以在新选项卡中设置文本颜色,以及ntp_background属性以设置新选项卡的颜色 (Firefox bug 1347204)。 -
主题现在可以定义侧边栏的颜色,例如书签侧边栏 (Firefox bug 1418602)。相关属性包括
sidebar:侧边栏的背景颜色。sidebar_text:侧边栏的文本颜色。sidebar_highlight:侧边栏中选定项目的背景颜色。sidebar_highlight_text:侧边栏中选定项目的文本颜色。
-
方法
management.install()允许 Web 扩展安装和启用已签名的浏览器主题 (Firefox bug 1369209)。 -
引入了清单键 theme_experiment (Firefox bug 1472740)。此键允许定义 Firefox 界面的实验性
theme键属性。
搜索
- 新的
searchAPI 允许您检索已安装的搜索引擎列表并使用它们执行搜索 (Firefox bug 1352598)。 topSites.get()现在接受一个options参数,允许您为返回的站点列表设置各种选项 (Firefox bug 1445836)。
标签页
tabs.onHighlighted现在支持多选 (Firefox bug 1474440)。tabs.highlight现在在highlightInfo对象中包含一个可选字段 —populate— 默认为true。将其设置为false可阻止返回的windows.Window对象填充标签页列表,以提高性能 (Firefox bug 1489814)。tabs.update现在支持通过在updateProperties参数中包含highlighted: true来更改标签页的选定状态 (Firefox bug 1479129)。tabs.update现在支持通过在updateProperties参数中同时包含highlighted: true和active: false来更改标签页的选定状态而不更改焦点标签页 (Firefox bug 1486050)。tabs.query现在如果选择了多个标签页,则返回一个tabs.Tab对象数组 (Firefox bug 1465170)。tabs.Tab属性现在正确反映浏览器窗口中哪些标签页被选中(高亮),并且tabs.highlight支持更改多个标签页的高亮状态 (Firefox bug 1464862)。- 传入
tabs.onUpdated的filter对象中的isarticle属性已重命名为isArticle。旧名称保留但已弃用。此更改已升级到 Firefox 62 (Firefox bug 1461695)。 tabs.onUpdated事件可用于通过changeInfo对象的attention属性跟踪标签页何时引起用户注意 (Firefox bug 1396684)。
菜单
- 在
menusAPI 中添加了menus.getTargetElement()。该方法返回由targetElementId参数引用的元素,该参数标识单击的元素。如果targetElementId不再有效,该方法返回 null (Firefox bug 1325814)。 menus.create()现在允许您创建不可见的菜单项,menus.update()允许您切换菜单项的可见性 (Firefox bug 1482529)。- 使用
menusAPI 创建的项目现在支持访问键 (Firefox bug 1320462)。 menus.create()和menus.update()的targetUrlPatterns参数现在支持任何 URL 方案,即使是那些通常不允许在匹配模式中使用的方案 (Firefox bug 1280370)。- 当单击标签页上下文菜单项时,即使该标签页不是当前活动的标签页,也会为该标签页授予 "activeTab" 权限 (Firefox bug 1446956)。
其他
commands.onCommand现在被视为用户输入 (Firefox bug 1408129)。webRequestAPI 现在允许您筛选推测性连接 (Firefox bug 1479565)。webRequest.SecurityInfo添加了两个新属性,keaGroupName和signatureSchemeName。此更改已升级到 Firefox 62 (Firefox bug 1471959)。cookies.Cookie现在包含一个指示 cookie 的 SameSite 状态的属性。cookies.SameSiteStatus枚举定义了 SameSite 状态值 (Firefox bug 1351663)。- URL 的匹配模式现在明确匹配“data”URL 方案 (Firefox bug 1280370)。