深入Firefox第192期:浏览器底层技术更新与开发工具进化

本文详细介绍了Firefox Nightly第192期的技术更新,涵盖崩溃标签组悬停预览、DevTools中CSS变量声明的折叠、调试器自动美化打印、CSS变量性能优化、WebDriver命令完善、ESLint规则启用以及配置文件管理功能增强等多个技术层面。

每日进步——Firefox近期动态:第192期

Mike Conley 2025年11月24日

亮点

  • 折叠的标签组悬停预览功能已在Firefox 145中上线!
  • Nicolas Chevobbe在规则视图中添加了折叠未引用的CSS变量声明的功能(#1719461)
  • Alexandre Poirot [:ochameau]在调试器中添加了启用自动美化打印的设置(#1994128)
  • 改进了大量使用CSS变量页面的性能
  • Jared H在应用菜单中添加了“复制此配置文件”按钮(Bug 1992199)

Firefox团队之友

已解决的Bug(排除员工)

  • Khalid AlHaddad
  • Kyler Riggs [:kylr]

新贡献者(🌟 = 第一个补丁)

  • Alex Stout
  • Khalid AlHaddad
  • Jim Gong
  • Mason Abbruzzese
  • PhuongNam
  • Thomas J Faughnan Jr
  • Mingyuan Zhao [:MagentaManifold]

项目更新

附加组件 / 网络扩展

WebExtensions框架

  • 修复了一个问题,该问题阻止了从附加到沙盒子框架的内容脚本中调用动态导入来解析moz-extension ES模块。——Bug 1988419
    • 感谢Spidermonkey团队的Yoshi Cheng-Hao Huang调查并修复了此影响内容脚本使用动态导入的问题。

附加组件管理器与 about:addons

  • 作为改进扩展按钮面板空状态工作的后续,从Nightly 146开始,Firefox桌面版将在扩展按钮面板和about:addons中显示消息栏通知,以突出显示当Firefox在“故障排除模式”(也称为安全模式)下运行且所有附加组件预期将被禁用时的情况,并附带一个“了解更多”链接,指向详细介绍故障排除模式的SUMO页面。——Bug 1992983 / Bug 1994074 / Bug 1727828

开发者工具

  • gopi 使规则视图即使在值无效时也能格式化grid-template-areas (#1940198)
  • Emilio Cobos Álvarez 修复了在影子DOM中编辑构造规则会导致其消失的问题 (#1986702)
  • Nicolas Chevobbe 修复了一个Bug,该Bug会在共享样式表上由:host规则定义的变量的var()工具提示中渲染错误数据 (#1995943)
  • Julian Descottes 改进了在选中影子DOM元素时的检查器重新加载时间 (#1986704)
  • Hubert Boma Manilla 修复了在调试器中暂停时可能出现重复内联预览的问题 (#1994114)
  • Nicolas Chevobbe [:nchevobbe] 在设置面板中暴露了devtools.inspector.showAllAnonymousContent选项 (#1995333)

WebDriver

  • Khalid 在WebDriver经典Python客户端中添加了一个专用的switch_to_parent_frame方法,并将现有的switch_frame方法重命名为switch_to_frame,以与WebDriver规范保持一致。
  • Julian 更新了network.getData命令,使其能返回使用data:方案的请求的响应体。
  • Julian 修复了一个Bug,该Bug会导致不同的请求重用相同的ID,当使用针对特定请求的命令(例如network.provideResponse, network.getData等)时,可能导致意外行为。
  • Sasha 更新了emulation.setLocaleOverrideemulation.setTimezoneOverride命令的重置行为,以符合规范的更改。通过此次更新,当调用这些命令来重置例如某个浏览上下文的覆盖时,仅会重置此覆盖,而如果存在与此浏览上下文相关的用户上下文设置的覆盖,则将应用该覆盖。

代码检查、文档与工作流程

ESLint

  • 我们正在努力在整个代码库中推广可自动修复的JSDoc规则。目的是减少在推广过程中被禁用的规则数量,并使在新领域启用JSDoc规则变得更简单。
    • jsdoc/no-bad-blocks 现已启用。
      • JSDoc注释要求在开头有两个星号,如果看起来应该是JSDoc注释(例如带有@符号)但只有一个星号,则会引发问题。
    • jsdoc/multiline-blocks 也已启用。
      • 这主要用于多行注释的布局一致性,以便注释文本既不从第一行开始,也不在最后一行结束。这也有助于自动修复其他规则。

StyleLint

  • 启用了更多规则——背景颜色令牌、空间令牌、文本颜色令牌、盒阴影令牌。
  • 添加了一条新规则,以防止在toolkit/中使用browser/的css文件。

迁移改进

  • 我们现在默认禁用了IE迁移器,因为IE(独立浏览器,非兼容模式)已于2022年停止获得微软的支持。我们将让此功能保留至发布版本,然后开始完全移除其支持。
  • 为了帮助用户将数据从Windows 10迁移出来,我们恢复了备份工作,并已落地了多项修复:
    • 恢复操作现在会保留用户的默认配置文件(如果它在备份前是默认的),并且之前的配置文件会被重命名为old-[配置文件名称]以清晰明了。这可以防止恢复后出现意外的启动配置文件,并使在配置文件管理器中的回滚操作显而易见。
    • 恢复文件选择器(恢复模态框和about:welcome恢复)现在会在检测到的备份位置打开,减少了导航摩擦和错误。
    • about:preferences中的主要CTA标签在启用后立即正确更新(“管理备份” → “关闭备份”),使UI状态与功能保持一致。
    • “立即备份”按钮在启用备份之前被隐藏,避免了一个无效操作,并引导用户完成正确的设置流程。
    • 为fxbackup添加了企业策略首选项,使管理员能够在Windows/macOS/Linux上为受管理的用户强制执行/锁定备份的可用性和行为。
    • 更新了about:preferences中的错误和警告横幅以符合规范,以获得更清晰的状态和故障消息。
    • 备份HTML存档支持链接现在指向正确的文档。
    • 复制更新明确了备份中包含哪些Cookie数据,改善了用户期望和隐私透明度。

新标签页

  • 我们于10月20日成功将新标签页版本145.1.20251009.134757训练跳跃至发布渠道的100%!
  • 新标签页默认设置与新鲜度:当browser.newtabpage.activity-stream.discoverystream.sections.enabled更改时,DiscoveryStream缓存现在会过期,因此切换布局可以立即更新内容。首次运行时显示的占位符少得多,改善了感知加载速度。通过基于新标签页附加组件版本对about:home启动缓存进行键控,提高了启动正确性。
  • 无障碍访问、键盘和RTL:修复了设置跳转到天气前面的混乱焦点顺序。对于Windows高对比度模式,故事卡片在悬停时不再消失,并获得了更清晰的视觉效果。RTL语言环境现在在故事卡片之间获得了直观的反向箭头键导航。
  • 天气选择加入和覆盖范围:选择加入流程现在会显示“启用当前位置”,并添加了“检测我的位置”上下文菜单操作;可用性扩展到更多区域,减少了设置摩擦并增加了覆盖范围。
  • 视觉优化与正确性:标准化的不透明度加上悬停/模糊效果使故事卡片感觉更灵敏;确保搜索栏在滚动时保持垂直居中。改进的卡片现在可以显示更长的发布者名称,而不影响小卡片。
  • 壁纸和语言修复:缺失的自定义壁纸缩略图现在可靠加载,如果远程设置壁纸失败,会显示友好的错误状态。语言切换器不再列出附加组件区域设置,恢复了预期的语言选择。

性能工具(即 Firefox Profiler)

  • 标记工具提示现在有一个“过滤”按钮,可以快速将标记图表过滤到类似的标记:

截图中的配置文件链接:https://share.firefox.dev/42kDTuf(过滤后:https://share.firefox.dev/4gQHPsx) 这是一个xpcshell测试作业的资源使用情况配置文件。要查看它们,请在treeherder中选择一个测试作业并按‘g’。

配置文件管理

  • 配置文件 功能正在向144版本中的所有非win10用户推出,目前看来状况良好。
  • Niklas 重构了BackupService以支持使用它来复制配置文件(Bug 1992203)。
  • Jared H 在Windows上添加了每个配置文件的桌面快捷方式(Bug 1958955),可通过about:editprofile页面上的切换开关使用。
  • Dave 修复了调试版本中的间歇性测试崩溃(Bug 1994849),该崩溃是由删除目录和尝试打开锁文件之间的竞争引起的。nsProfileLock::LockWithFcntl现在在这种情况下返回警告而不是错误。

搜索与导航

新功能

  • 我们正在努力在地址栏中启用更好的搜索建议(博客文章链接)。
  • Mandy 已将Perplexity作为新搜索引擎推广给所有用户。
  • Google Lens 正在向144版本中的用户推广,并增加了产品内演示。

地址栏

  • Daisuke 为航班状态建议实现了原型 @ 1990951 + 1994317。
  • Dale 一直在努力启用统一信任面板 @ 1992940 + 1979713。
  • Dale 引入了Option + Up / Down作为打开统一搜索面板的键盘快捷键 @ 1962200。
  • Moritz 移除了“为此搜索添加关键字”的代码,因为这是已弃用的功能 @ 1995002。

搜索

  • Mandy 和 Drew 一直在努力发布视觉搜索 + 消息传递 @ 1995645。

Storybook / 可复用组件 / Acorn设计系统

  • <moz-message-bar> 现在支持带有 slot=”message” 元素的任意内容。
    • 理想情况下,这仍然应该是简短的内容,比如一条消息,而不是输入框等。
    • 示例:<moz-message-bar><span slot=”message” data-l10n-id=”my-message”><a data-l10n-name=”link”></a></span></moz-message-bar>
    • 注意:如果你使用Lit,设置在Fluent元素(data-l10n-name)上的@click监听器等将不起作用,你需要将其附加到data-l10n-id元素或另一个父元素上。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计