未分类文章
-
Firefox 77 新功能:开发工具改进和 Web 平台更新
全新的 Firefox 稳定版现已推出。版本 77 为 Web 开发人员带来了诸多新功能。本文只是归纳了一些亮点;如需了解详细信息,请参见以下资源: MDN 上的 Firefox 77 开发人员须知 Firefox 77 最终用户发行说明 开发人员工具改进 首先来看看版本 77 中最值得关注的开发人员工具改进和补充。若要进一步了解进行中的工作并提供反馈,请下载 Firefox DevEdition 来抢先体验。 JavaScript 调试更快速、更精简 大型 Web 应用可能会给 DevTools 带来挑战,因为捆绑、实时重载和依赖项都需要得到快速、正确地处理。在版本 77 中,Firefox 的调试器有了更多本领,让您能够专注于调试。 我们经过多个发行版本改进了调试性能,在寻找可动手的高影响力 Bug 错误方面即将达到终点。因此,为了能找到残留的瓶颈,我们积极与社区交流。我们收到了许多详细的报告,实现了诸多性能改进,不仅加快了暂停和分步执行,同时也降低了不同时间点上的内存占用。 行之有效的 JavaScript 和 CSS 源映射 源映射是这次扩展的组成部分,在性能增强方面功效显著。部分内联源映射在加载时间上提升了 10 倍。但更重要的是,我们加强了更多源映射配置的可靠性。我们解决了解析和映射的回退问题,而这要归功于大家提供的有关生成稍有差错的源映射的报告。总体而言,之前无法加载您的原始 CSS 和 JavaScript/TypeScript/etc 代码的项目如今应该可以正常运作。 在选定堆栈帧内分步执行 JavaScript 分步执行是调试的一个重要部分,但不够直观明了。在进入和退出函数以及在库和自有代码之间移动时,您可能很容易迷失方向并超出范围。 现在,调试器可以在分步执行时遵从当前选定的堆栈。当您进入某个函数调用后,或者在堆栈深处的某个库方法上暂停时,这特别有用。只需在调用堆栈中选择正确的函数,即可跳转到当前暂停的行并从那里继续分步执行。 请翻译:Alt 文本:前往调用堆栈并在相应函数中继续分步执行 希望这能让代码分步执行变得更加直观明了,并降低您遗漏重要代码行的几率。 Network 和 Debugger 的溢出设置 为了造就更简洁的工具栏,Network 和 Debugger 沿用与 Console 相同的范例,将现有和新的复选框组合成一个全新的设置菜单。这不仅让您一手掌握“Disable JavaScript”等功能强大的选项,也给未来更强大的选项留出余地。 请翻译:Alt 文本:Network 和 Debugger 工具栏中的溢出设置菜单。 暂停属性读写 了解状态变化是个问题,通常通过控制台调试日志来调查。观察点 (Watchpoint) 是 Firefox 72 中引入的功能,可以在脚本读取或写入属性的过程中暂停执行。暂停之后,右键单击 Scopes 面板中的属性即可关联它们。 请翻译:Alt 文本:右键单击 Debugger 的 Scopes 中的对象属性以在 get/set 上中断 感谢 Janelle deMent 的贡献,组合了 get/set 的新选项使观察点变得更易使用,任何脚本引用皆可触发暂停。 改进的 Network 数据预览 Network 详情面板在每次发行时都有进步,如今已得到重新架构。旧界面中存在事件处理 Bug 错误,使选择和复制文本容易出错。我们不仅解决了这一点,也提升了大型数据输入的性能。 这是 Network 面板中重要界面清理工作的一部分,我们已就此通过 @FirefoxDevTools Twitter 和 Mozilla 的 Matrix 社区向社区发出了问卷调查。欢迎您分享您的见解。您也可下载 Firefox DevEdition,抢先体验 Network 面板边栏的更多新设计。 Web 平台更新 Firefox 77 支持多项新的 Web 平台功能。 String#replaceAll Firefox 67 引入了 String#matchAll,这是一种更便于迭代 regex 结果匹配项的方式。在 Firefox 77 中,我们让便捷程度更进一步:通过 String#replaceAll 来帮助替换字符串的所有实例;这或许是您长久以来梦寐以求的运算(感谢 StackOverflow 做出的巨大贡献!)。 在过去,若要将所有 cats 替换成 dogs,必须要使用全局正则表达式 .replace(/cats/g, 'dogs'); 或者,也可使用 split 和 join: .split('cats').join('dogs'); 现在,因为有了 String#replaceAll,这变得更加易读了: .replaceAll('cats', 'dogs'); IndexedDB 光标请求 Firefox 77 将 IDBCursor 所源自的请求作为光标上的属性来公开。这是一种精妙的改进,使得“升级”数据库功能的 wrapper 函数的编写变得更加轻松。在过去,如果要对光标进行这种升级,必须要传递光标对象和它所源自的请求对象,因为前者依赖于后者。有了这一改进,现在只需要传递光标对象,因为请求已在光标上可用。 Firefox 77 中的扩展:请求变少,权限更多 从 Firefox […]
-
Firefox 76:Audio Worklet 和其他诀窍
Firefox 76 为 Web 平台支持带来了新的出色功能,如 Audio Worklet 和 JavaScript 的 Intl 改进等。另外,Firefox DevTools 中也添加了诸多一流改进,让 JavaScript 调试和开发变得更加轻松快捷。
-
Firefox 74,为安全赋予更多价值
Firefox 74 已于今日发布。新版本最重要的新增功能体现在安全性方面的增强:特征策略(feature policy)、Cross-Origin-Resource-Policy 标头及取消了对 TLS 1.0 / 1.1 的支持。我们还提供了一些新的 CSS 文本属性功能、可选 JS 链接运算符和其他 2D 画布文本测量功能,以及海量 DevTools 增强功能和错误修复功能。请照例阅读重点内容或从以下文章中找到所有新增内容的完整列表: Firefox 74 开发人员必读 Firefox 74 网站兼容性 Firefox 74 最终用户发行说明 安全性增强 让我们了解一下 74 版本在安全性上的增强。 特征策略(Feature Policy) 最终版中 Feature Policy(功能策略)默认开启。您现在可以使用<iframe> allow 属性和 Feature-PolicyHTTP 标头为顶级文档和 iframe 设置功能权限。语法示例如下: <iframe src="https://example.com" allow="fullscreen"></iframe> Feature-Policy: microphone 'none'; geolocation 'none' CORP 我们还提供对 Cross-Origin-Resource-Policy(CORP)标头的支持,允许站点和应用程序选择拒绝某些跨域请求(例如来自<script> 和<img> 元素的请求)。这有助于减少潜在的旁路攻击(例如 Spectre 和 Meltdown)以及跨站点脚本包含攻击。 选项包括 same-origin 和 same-site。same-origin 仅允许同一方案、主机和端口的请求读取相关资源。除网络默认的同源策略外,它还提供了更多级别的保护。same-site 仅允许来自同一站点的请求。 若要使用 CORP,则必须将标头设置为下列值之一,例如: Cross-Origin-Resource-Policy: same-site 移除 TLS 1.0 / 1.1 最后还有一点(但并非不重要),Firefox 74 取消了对 TLS 1.0 / 1.1 的支持,以帮助提高 Web 平台的总体安全级别。这对于推动 TLS 生态系统向前发展以及消除由 TLS 1.0 / 1.1 造成的许多漏洞至关重要,TLS 1.0 / 1.1 并没有我们想像的那样健壮,急需隐退。 Mozilla、Google、Microsoft 和 Apple 于 2018 年 10 月首次共同倡议对其进行修改。如今到了 2020 年 3 月,我们都兑现了诺言(Apple 除外,Apple 将稍晚些时候做出更改)。 其结果是要确保您的 Web 服务器支持 TLS 1.2 或 1.3 以上。请阅读有关移除 TLS 1.0 和 1.1 的更新说明,以了解如何测试和更新 TLS/SSL 配置。从现在开始,连接到使用旧版本 TLS 的服务器时,Firefox 将返回安全连接失败(Secure Connection Failed)错误。如果尚未升级,请立即升级! 注意:在未来几个发布周期(对于 Firefox 的延长支持版本来说,发布周期会更长),安全连接失败(Secure […]