近日消息,一直以来,当用户在Windows 11或者Windows 10系统且开启深色模式的情况下,使用Chrome或者Edge浏览器时,在打开新窗口或者启动浏览器的瞬间,都会碰到令人头疼的白色闪屏状况。
这种情况出现的原因在于,Chrome和Windows在针对深色主题窗口构建方面还存在着一些缺陷。这种类似的闪屏问题并非只在浏览器上出现,在文件资源管理器上也存在,当文件资源管理器加载文件之前的短暂时间里,也会出现白屏现象。
不过,这一问题即将得到解决。浏览器研究员 Leo 在 X 发现,微软已经为 Chromium 提交了补丁,旨在消除深色模式下窗口创建时的白屏问题。
据了解,微软的解决方案是通过一种“隐藏”窗口的方式来规避问题。具体而言,当用户创建新窗口时,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 浏览器。
文明上网,理性发言,共同做网络文明传播者