微軟修復 Windows 11/10 深色模式下 Chrome / Edge 瀏覽器白色閃屏問題
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 將為其使用默認的白色背景色。這會導致在深色模式下首次顯示窗口時出現白閃。為了避免這種情況,我們在第一次顯示窗口之前將其隱藏,并強制繪制預期的背景色,然后再取消隱藏?!?/p>
一些 Chromium 代碼貢獻者對這種方法持保留態度,他們擔心在更新窗口為深色背景時,GPU 進程完成頁面內容繪制可能出現競爭條件,導致 Chrome 用深色覆蓋原始屏幕內容。不過,微軟的測試表明這種情況并未發生,因此推出補丁后 Chrome 可能不會遇到此類問題。
Chris Davis 的隱藏窗口方法即將實施,這意味著用戶在 Windows 11(以及 Windows 10)上將不再看到啟動瀏覽器或創建新窗口時的白閃問題。相關改動將很快推送至 Chrome 和 Edge 瀏覽器。