微軟修復(fù) Windows 11/10 深色模式下 Chrome / Edge 瀏覽器白色閃屏問題
1 月 8 日消息,長期以來,當(dāng)用戶在開啟了深色模式的 Windows 11 或 Windows 10 系統(tǒng)中使用 Chrome 或 Edge 瀏覽器時(shí),都會(huì)在打開新窗口或啟動(dòng)瀏覽器時(shí)遇到惱人的白色閃屏問題。這是因?yàn)?Chrome 和 Windows 在處理深色主題窗口創(chuàng)建方面尚存在不足。類似的問題也出現(xiàn)在文件資源管理器上,在加載之前會(huì)短暫出現(xiàn)白屏。
不過,這一問題即將得到解決。瀏覽器研究員 Leo 在 X 發(fā)現(xiàn),微軟已經(jīng)為 Chromium 提交了補(bǔ)丁,旨在消除深色模式下窗口創(chuàng)建時(shí)的白屏問題。
據(jù)IT之家了解,微軟的解決方案是通過一種“隱藏”窗口的方式來規(guī)避問題。具體而言,當(dāng)用戶創(chuàng)建新窗口時(shí),Windows 本身會(huì)將其設(shè)置為白色狀態(tài),并一直保持到 Chrome 或 Edge 接管渲染為止。由于 Windows 的桌面窗口管理器 (DWM.exe) 在處理窗口管理時(shí)無法遵循深色主題設(shè)置,就會(huì)造成白閃的出現(xiàn)。
微軟的網(wǎng)頁團(tuán)隊(duì)開發(fā)者 Chris Davis 提出了一種解決方法,即在 Chrome 或 Edge 可以顯示深色背景之前將窗口“隱藏”起來。雖然這聽起來更像是權(quán)宜之計(jì)而非徹底修復(fù) Windows 11 的 DWM.exe,但目前看來是最佳方案。
Chris Davis 解釋道:“當(dāng)窗口首次創(chuàng)建時(shí),DWM 將為其使用默認(rèn)的白色背景色。這會(huì)導(dǎo)致在深色模式下首次顯示窗口時(shí)出現(xiàn)白閃。為了避免這種情況,我們在第一次顯示窗口之前將其隱藏,并強(qiáng)制繪制預(yù)期的背景色,然后再取消隱藏。”
一些 Chromium 代碼貢獻(xiàn)者對這種方法持保留態(tài)度,他們擔(dān)心在更新窗口為深色背景時(shí),GPU 進(jìn)程完成頁面內(nèi)容繪制可能出現(xiàn)競爭條件,導(dǎo)致 Chrome 用深色覆蓋原始屏幕內(nèi)容。不過,微軟的測試表明這種情況并未發(fā)生,因此推出補(bǔ)丁后 Chrome 可能不會(huì)遇到此類問題。
Chris Davis 的隱藏窗口方法即將實(shí)施,這意味著用戶在 Windows 11(以及 Windows 10)上將不再看到啟動(dòng)瀏覽器或創(chuàng)建新窗口時(shí)的白閃問題。相關(guān)改動(dòng)將很快推送至 Chrome 和 Edge 瀏覽器。