IT之家 1 月 8 日消息,长期以来,当用户在开启了深色模式的 Windows 11 或 Windows 10 系统中使用 Chrome 或 Edge 浏览器时,都会在打开新窗口或启动浏览器时遇到恼人的白色闪屏问题。这是因为 Chrome 和 Windows 在处理深色主题窗口创建方面尚存在不足。类似的问题也出现在文件资源管理器上,在加载之前会短暂出现白屏。
不过,这一问题即将得到解决。浏览器研究员 Leo 在 X 发现,微软已经为 Chromium 提交了补丁,旨在消除深色模式下窗口创建时的白屏问题。
据IT之家了解,微软的解决方案是通过一种“隐藏”窗口的方式来规避问题。具体而言,当用户创建新窗口时,Windows 本身会将其设置为白色状态,并一直保持到 Chrome 或 Edge 接管渲染为止。由于 Windows 的桌面窗口管理器 (DWM.exe) 在处理窗口管理时无法遵循深色主题设置,就会造成白闪的出现。
微软的网页团队开发者 Chris Davis 提出了一种解决方法,即在 Chrome 或 Edge 可以显示深色背景之前将窗口“隐藏”起来。虽然这听起来更像是权宜之计而非彻底修复 Windows 11 的 DWM.exe,但目前看来是最佳方案。
Chris Davis 解释道:“当窗口首次创建时,DWM 将为其使用默认的白色背景色。这会导致在深色模式下首次显示窗口时出现白闪。为了避免这种情况,我们在第一次显示窗口之前将其隐藏,并强制绘制预期的背景色,然后再取消隐藏。”
一些 Chromium 代码贡献者对这种方法持保留态度,他们担心在更新窗口为深色背景时,GPU 进程完成页面内容绘制可能出现竞争条件,导致 Chrome 用深色覆盖原始屏幕内容。不过,微软的测试表明这种情况并未发生,因此推出补丁后 Chrome 可能不会遇到此类问题。
Chris Davis 的隐藏窗口方法即将实施,这意味着用户在 Windows 11(以及 Windows 10)上将不再看到启动浏览器或创建新窗口时的白闪问题。相关改动将很快推送至 Chrome 和 Edge 浏览器。