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