随着 12 月份为这个非凡的一年拉下帷幕,还剩下一个 Firefox 版本有待发布。Firefox 84 包含一些有趣的新功能,包括选项卡顺序检查、`:`not()` 中的复杂选择器支持、`PerformancePaintTiming` API 等等!
这篇文章只提供了一些重点内容;如需了解所有细节,请查看以下内容
DevTools 获得选项卡顺序检查
这次,Firefox 开发者工具为 无障碍检查器 添加了一个相当不错的功能——“显示选项卡顺序”复选框。选中此选项后,将切换一个可视化叠加层,显示当前页面上选项卡顺序或表格项。这提供了对使用 Tab 键导航页面方式的高级概述,这可能比简单地遍历元素更有效地突出显示问题。
Web 平台添加
Firefox 84 带来了 Gecko 平台的一些新添加内容,以下是其中的一些重点。
`:not()` 中的复杂选择器支持
`:`not()` 伪类非常有用,它允许您将样式应用于不匹配一个或多个选择器的元素。例如,以下代码将蓝色背景应用于除段落以外的所有元素
:not(p) {
background-color: blue;
}
但是,它在最近一段时间内用处有限,因为它不允许使用任何类型的复杂选择器进行否定。Firefox 84 添加了对此的支持,因此您现在可以执行以下操作
:not(option:checked) {
color: #999;
}
这将为当前未选中的 `<select>` 选项设置不同的文本颜色。
PerformancePaintTiming
Paint Timing API 的 `PerformancePaintTiming` 接口提供有关网页构建期间“绘制”(也称为“渲染”)操作的计时信息,这对希望开发自己的性能工具的开发人员来说非常有用。
例如
function showPaintTimings() {
if (window.performance) {
let performance = window.performance;
let performanceEntries = performance.getEntriesByType('paint');
performanceEntries.forEach( (performanceEntry, i, entries) => {
console.log("The time to " + performanceEntry.name + " was " + performanceEntry.startTime + " milliseconds.");
});
} else {
console.log('Performance timing isn\'t supported.');
}
}
在支持的浏览器中将输出类似于以下内容
The time to first-paint was 2785.915 milliseconds. The time to first-contentful-paint was 2787.460 milliseconds.
AppCache 移除
AppCache 尝试创建一个解决方案,用于离线缓存 Web 应用程序资产,以便在没有网络连接的情况下继续使用该网站。这似乎是一个好主意,因为它非常易于使用,并且可以轻松解决这一常见问题。但是,它对您尝试执行的操作做出了许多假设,然后在您的应用程序没有完全遵循这些假设时就出现了故障。
浏览器供应商一直在计划将其移除相当长的时间,从 Firefox 84 开始,我们终于彻底摆脱了它。对于创建离线应用程序解决方案,您应该使用 Service Worker API。
WebExtensions
从 Firefox 84 开始,用户将能够通过附加组件管理器 管理已安装附加组件的可选权限。
我们建议使用可选权限的扩展程序监听 `browser.permissions.onAdded` 和 `browser.permissions.onRemoved` API 事件。这确保扩展程序了解用户授予或撤销可选权限。
此外,扩展程序开发人员现在可以使用 Ctrl + 滚轮(macOS 上为 Cmd + 滚轮) 缩放扩展程序面板、弹出窗口和侧边栏。
我们还修复了一个问题,即在某些情况下,在卸载附加组件时,搜索引擎更改不会被重置。
WebRender 进入 Linux 和 Android
在我们 之前的 Firefox 版本 中,我们为我们的 WebRender 渲染架构添加了许多新的 Windows 和 macOS 版本的支持。这次,我们很高兴地宣布为一部分 Linux 和 Android 设备添加了支持。具体来说,我们已在以下设备上启用 WebRender:
- 基于 Gnome、X11 和 GLX 的 Linux 设备。
- Android Mali-G GPU 系列手机(占 Fenix 发布人群的约 27%)。
我们正稳步接近为每个人提供 60fps 网页的梦想。
Localhost 改进
最后但同样重要的是,我们要提醒您,我们在版本 84 中对 Firefox 处理 localhost URL 的方式进行了一些重大改进。Firefox 现在确保 localhost URL(如 *http://localhost/* 和 *http://dev.localhost/*)引用本地主机环回接口(例如 http://127.0.0.1)。
因此,从 localhost 加载的资源现在被假定为已安全交付(请参阅 安全上下文),并且也不会被视为 混合内容。这对简化不同 Web 功能的本地测试有许多影响,尤其是对于那些需要安全上下文(如服务工作者)的功能。
关于 Chris Mills
Chris Mills 是 Mozilla 的高级技术作家,负责编写有关开放 Web 应用程序、HTML/CSS/JavaScript、A11y、WebAssembly 等方面的文档和演示。他喜欢用 Web 技术捣鼓,并且偶尔会在会议和大学进行技术演讲。他曾为 Opera 和 W3C 工作,喜欢演奏重金属鼓和品尝美味的啤酒。他住在英国曼彻斯特附近,与他的妻子和三个美丽的孩子生活在一起。
12 条评论