Firefox 190 期亮点:更智能的搜索与更顺滑的开发工具

本文详细介绍了Firefox Nightly第190期中的多项技术更新,包括默认启用的Google Lens图像搜索、基于本地机器学习模型的语义历史搜索、开发者工具的多项修复与增强、WebDriver BiDi协议的扩展、ESLint配置修复以及界面组件的改进等。

更智能的搜索,更顺滑的工具 – 这几周的Firefox:第190期

Anna Kulyk 2025年10月6日

亮点

  • Google Lens 支持已在最新的 Nightly 版本中默认开启。当 Google 是您的默认搜索引擎时,右键单击图像会看到一个新的上下文菜单项。
  • 语义历史搜索现在也已启用。它使用本地机器学习模型,根据地址栏中的自然语言理解,从历史记录中推荐与您的搜索相关的条目。
  • Alexandre Poirot [:ochameau] 改进了编辑器,现在会显示一个编辑器小部件,您可以在其中导航到对给定函数的不同调用处 (#1908889)。
  • WebExtension cookies.set API 方法对无效 Cookie 的拒绝行为已搭载 Firefox 145 发布列车(此前该行为仅在 Nightly 版本中保留了 3 个发布周期) – Bug 1976509。

Firefox 团队的朋友们

  • 已解决的错误(不包括员工)
  • 修复了多个错误的志愿者
    • Isaac Briandt
  • 新贡献者(🌟 = 第一个补丁)
    • David [:david-loe] 改进了时间选择器的可访问性。
    • Isaac Briandt 更新了 build-bergamot.pyupload-bergamot.py 以使用 zstd 压缩,并更新了 Translations RemoteSettings 模式。
    • 🌟 Vlad L 更新了 ipv6 表示算法。

项目更新

附加组件 / Web 扩展

附加组件管理器 & about:addons

作为将附加组件遥测从旧遥测系统迁移到 Glean 的最后阶段,EnvironmentAddonBuilder(负责在 Glean 中收集 activeAddons/Theme/GMPlugins 指标并将其镜像到旧遥测环境)已从 TelemetryEnvironment ES 模块中重构出来 – Bug 1981496。

开发者工具

  • Sebastian Zartner [:sebo] 在非块级、非弹性、非网格容器中使用 overflow* 属性时,添加了非活跃的 CSS 图标 (#1583898)。
  • Artem Manushenkov 修复了检查器中的内存泄漏 (#1986144)。
  • Holger Benl [:hbenl] 修复了响应式设计模式中截取的屏幕截图可能具有意外尺寸的问题 (#1979518)。
  • Nicolas Chevobbe [:nchevobbe] 使无障碍面板的颜色模拟在页面重新加载后得以保持 (#1770707)。
  • Alexandre Poirot [:ochameau] 修复了在控制台中点击堆栈跟踪帧时可能发生的调试器崩溃 (#1985446)。
  • Hubert Boma Manilla (:bomsy) 修复了调试器对包含由多个代码单元表示的字符的源代码进行美化打印的问题 (#1985689)。
  • Hubert Boma Manilla (:bomsy) 更新了我们用于处理顶级 await 检测的 Babel 版本,修复了几个问题 (#1900314)。
  • Alexandre Poirot [:ochameau] 修复了网络面板中的一个问题(由 Jake 报告),即搜索永远不会完成 (#1983792)。
  • Julian Descottes [:jdescottes] 修复了在对需要 CORS 预检的请求设置网络覆写时发生的网络监视器崩溃 (#1986615)。
  • Nicolas Chevobbe [:nchevobbe] 修复了影响“更改”面板在具有多个文档的页面(包括浏览器工具箱)上的问题 (#1798774)。

WebDriver BiDi

  • Henrik 为远程协议(Marionette / WebDriver BiDi)默认禁用了 BackupService 组件,因为它不是 Web 自动化任务所必需的。
  • Julian 实现了 browsingContext.downloadEnd 事件,该事件在下载完成或取消时发出。
  • Sasha 为 WebDriver BiDi 实现了 “emulation.setUserAgentOverride” 命令,允许客户端按浏览上下文、用户上下文或全局覆盖 Firefox 中的用户代理字符串。并修复了 Bug 1705326 – 如果设置了自定义 UA 期间发生了重新加载,则在清除 browsingContext.customUserAgent 后,navigator.userAgent 仍会返回自定义 UA。
    • 错误修复
      • Julian 更新了 browsingContext.downloadWillBegin 事件,使其发出正确的 navigation id,该 id 要么与相应的 browsingContext.navigationStarted 事件相同,要么在下载由带有 download 属性的链接启动时为 null。
      • Julian 修复了当使用 network.provideResponse 来覆写需要 CORS 预检的响应时发生的崩溃。
      • Julian 修复了一个错误,即网络事件被错误地标记为已阻止(isBlocked=true),即使它们并非因技术原因被阻止 – 例如来自内存缓存或使用 data 协议。
      • Julian 更新了 network.beforeRequestSent 事件,对于顶级加载,其 destination 设置为 “document”。
      • Julian 修复了 network.getData 的编码问题,现在在序列化为文本时将始终使用 utf-8。
      • Julian 还更新了 network.getData,使其在响应正文为空时不再抛出异常。

代码检查、文档和工作流

  • 一个月前首次提到的第 3 级 TypeScript 检查器现已修复,以便在它监视的组件被修改时运行。此前,它只在类型信息被更改时运行。
  • ESLint
    • 我们发现由于升级到 ESLint v9 的扁平配置时出错,require-jsdoc 规则没有被应用。这些规则现已重新启用,并已提交后续补丁来修复自引入错误以来出现的新问题。
    • no-browser-refs-in-toolkit 规则现已升级为错误级别,除了当前失败的情况(仍为警告级别)。请避免引入新的违规情况。
    • ESLint 配置检查器现在应该可以在针对 firefox-main 运行时正常工作。这是一个非常实用的工具,用于检查配置并确定哪些全局变量和规则应用于哪些文件。
    • Gijs 更新了我们关于 ESLint 环境的文档,这些环境在 v9 中不再以相同的方式工作。
      • /** eslint-env foo */ 不再有效。
      • 文件要么需要正确的扩展名,要么需要添加到 eslint-file-globals.config.mjs 中。有关更多信息,请参阅文件顶部的注释。

信息管理/侧边栏

  • 针对已在 143 版本中推出的“拖拽固定”功能进行了一些修复;这些修复将包含在后续的 . 发布版本中。
    • 添加了对推广卡片的检查,以确保我们不会过早显示它。
    • 1989344 – 调整了“拖拽固定”的交互提示时机。
  • Nikki 改进了垂直和水平标签页在标签页堆叠情况下的动画效果。
  • 分屏视图工作仍处于早期阶段,但其元错误跟踪在此。
  • 我们的目标是在 145 版本中仅在 Nightly 频道默认开启 sidebar.revamp,因此我们正在通过一些测试,然后处理一些旧的侧边栏功能对等性的错误,之后再在正式版中启用。

配置文件管理

  • Jared 修复了错误 1941854:[Windows] 在 Firefox 启动时,配置文件选择器会打开一个额外的窗口(骨架 UI)。
  • Maile 修复了错误 1955173:配置文件 about: 页面的网站图标未在“列出所有标签页”菜单中正确显示。
  • Niklas 修复了错误 1965598:使用情况配置文件组 ID 应由组内的所有配置文件共享。
  • Jaws 修复了错误 1987317:如果配置文件的库处于打开状态,Firefox 将无法启动该配置文件。
  • Jaws 修复了错误 1988882:SelectableProfileService 对 rgb 颜色属性使用了错误的值。
  • Jaws 修复了错误 1990020:SelectableProfileService 中的一些小修复。

搜索与导航

  • 正在继续对地址栏代码进行模块化和复用,以替换现有的搜索栏。
    • 这将允许我们简化现有代码,消除对工具包自动完成小部件的依赖,并为独立的搜索栏带来更多功能。
  • 搜索引擎标识符和遥测
    • 我们现已移除 nsISearchEngine.identifier,并弃用 nsISearchEngine.telemetryIdnsISearchEngine.id 仍然存在。
    • 这些字段过去包含有关搜索引擎的混合信息(标识符、合作伙伴代码,有时更多)。这增加了通过遥测进行分析的难度。
    • 如果您要通过遥测或其他系统报告搜索引擎信息,请使用 nsISearchEngine 上单独的 id / partnerCode 字段,或就您的具体情况咨询搜索团队。

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

  • moz-button 支持 type="split" (Bug 1858811)。在拆分按钮上设置 menuId 会将其“更多选项”按钮链接到具有相同 id 的面板列表。(Storybook)
  • moz-box-item 添加了对 support-page 属性的支持 (Bug 1990839)。
  • 新增了 --font-size-xxlarge (2.2rem – 33px) 设计令牌 (Bug 1961988)。
  • 更新了对 border-radius 的使用,以使用设计令牌值 (Bug 1983938)。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计