改进 Firefox 中 Wayland 支持的路线图

Martin Stransky 是 Fedora 和 RHEL 的 Firefox 软件包维护者,他正在将 Firefox 移植到 Wayland,他发表了一份报告,回顾了在基于 Wayland 协议的环境中运行的 Firefox 的最新进展。

在即将发布的 Firefox 版本中,计划通过剪贴板和处理弹出窗口解决 Wayland 构建中观察到的问题。 由于 X11 和 Wayland 中的实现方法存在差异,这些功能无法立即实现。 在第一种情况下,由于 Wayland 剪贴板异步运行而出现了困难,这需要创建一个单独的层来抽象对 Wayland 剪贴板的访问。 指定的图层将被添加到 Firefox 93 中,并在 Firefox 94 中默认启用。

关于弹出对话框,主要的困难是 Wayland 要求弹出窗口具有严格的层次结构,即父窗口可以创建带有弹出窗口的子窗口,但是从该窗口启动的下一个弹出窗口必须绑定到原始子窗口,形成一个链。 在 Firefox 中,每个窗口都可以生成多个不形成层次结构的弹出窗口。 问题是,当使用 Wayland 时,关闭其中一个弹出窗口需要使用其他弹出窗口重建整个窗口链,尽管存在多个打开的弹出窗口并不罕见,因为菜单和弹出窗口是以以下形式实现的:弹出工具提示、附加对话框、权限请求等。 Wayland 和 GTK 的缺陷也使情况变得复杂,因此微小的变化可能会导致各种回归。 不过,Wayland 处理弹出窗口的代码已经调试完毕,计划包含在 Firefox 94 中。

其他与 Wayland 相关的改进包括在不同 DPI 屏幕上为 Firefox 添加了 93 个缩放更改,这消除了在多显示器配置中将窗口移动到屏幕边缘时的闪烁。 Firefox 95 计划解决使用拖放界面时出现的问题,例如,将文件从外部源复制到本地文件以及移动选项卡时。

随着 Firefox 96 的发布,Wayland 的 Firefox 移植计划将在功能上与 X11 版本保持一致,至少在 Fedora 的 GNOME 环境中运行时是这样。 此后,开发人员的注意力将转向磨练 GPU 进程在 Wayland 环境中的工作,其中包含与图形适配器交互的代码,并保护主浏览器进程在驱动程序故障时不会崩溃。 GPU 进程还计划包括使用 VAAPI 进行视频解码的代码,该代码目前在内容处理进程中运行。

此外,我们还可以注意到,其中包含了严格的站点隔离模式,该模式是 Fission 项目的一部分,针对 Firefox 稳定分支的一小部分用户。 与迄今为止使用的跨可用进程池(默认为 8 个)的选项卡处理任意分布相反,隔离线模式将每个站点的处理放置在其自己的单独进程中,不是通过选项卡分隔,而是通过域(公共)分隔。后缀),允许额外隔离外部脚本和 iframe 块的内容。 启用 Fission 模式是通过 about:config 或 about:preferences#experimental 页面上的“fission.autostart=true”变量控制的。

严格隔离模式有助于防止侧通道攻击,例如与 Spectre 漏洞相关的侧通道攻击,还可以减少内存碎片,更有效地将内存返回给操作系统,最大限度地减少垃圾收集和密集计算对其他进程中页面的影响,以及提高不同CPU核心之间的负载分配效率并提高稳定性(处理iframe的进程崩溃不会影响主站点和其他选项卡)。

使用严格隔离模式时出现的已知问题包括,打开大量选项卡时内存和文件描述符消耗明显增加,以及某些附加组件工作中断、iframe 内容消失等。打印和调用截图记录功能,降低iframe缓存文档的效率,崩溃后恢复会话时丢失已完成但未提交的表单内容。

Firefox 中的其他变化包括完成向 Fluent 本地化系统的迁移、对高对比度模式的改进、在 about:processes 中添加一键记录进程性能配置文件的功能,以及删除返回旧版本的设置Firefox 89之前使用的新标签页样式。

来源: opennet.ru

添加评论