Microsoft risolve il problema del flash bianco di Chrome e Edge in modalità scura per Windows 11 e Windows 10

Microsoft risolve il problema del flash bianco di Chrome e Edge in modalità scura per Windows 11 e Windows 10

Grazie al passaggio di Microsoft a Chromium, gli utenti possono ora godere di funzionalità migliorate sia in Google Chrome che in Microsoft Edge. L’integrazione ha portato a miglioramenti significativi, tra cui scorrimento più fluido, gestione ottimizzata dei font e migliore efficienza della batteria, in particolare per Windows 11. Ora, Microsoft sta rivolgendo la sua attenzione al miglioramento delle capacità della modalità scura insieme a Desktop Window Manager (DWM.exe).

Tuttavia, persiste un problema comune: quando si utilizza Chrome in modalità scura su Windows 10 o Windows 11, gli utenti spesso riscontrano un breve lampo bianco durante l’apertura di una nuova finestra. Questo evento indesiderato evidenzia un problema in cui né il browser né il sistema operativo sanno come gestire correttamente il rendering iniziale, portando a una schermata intermedia antiestetica.

Ciò è evidente anche quando si avvia Chrome ed Edge nelle impostazioni del tema scuro del sistema operativo. Mentre sia Google che Microsoft hanno precedentemente affrontato aspetti dell’integrazione del tema scuro, la sfida rimane particolarmente evidente durante la transizione tra le finestre del browser. Problemi simili di flash erano stati precedentemente notati in Windows File Explorer, ma sono stati risolti nell’aggiornamento Windows 11 23H2.

Risoluzione del problema del flash bianco in modalità scura di Chromium

In base a un recente commit del codice Chromium analizzato da Windows Latest, sembra che il problema derivi dalla mancanza di Windows della gestione necessaria per le finestre Chrome appena create. Quando si avvia una nuova finestra, Windows 11 imposta di default uno sfondo bianco, rimanendo visibile finché Chrome o Edge non asseriscono il controllo.

Cromo bianco flash
Flash bianco cromato | Immagine per gentile concessione: WindowsLatest.com

In questo contesto, quando Windows 11 funziona in modalità scura, la gestione delle nuove finestre visualizzate pone un problema, con Windows che inizialmente gestisce la fase di caricamento finché le rispettive applicazioni non stabiliscono il loro rendering. Purtroppo, in questa fase, Windows non riconosce in modo efficace la gestione del tema scuro.

Chris Davis, uno sviluppatore Microsoft, ha introdotto una soluzione alternativa per mitigare il flash bianco implementando una tecnica di cloaking. Ciò comporta il nascondimento della finestra finché Chrome o Edge non riescono a visualizzare uno sfondo scuro appropriato. Sebbene si tratti più di una patch che di una soluzione definitiva al problema di DWM.exe, sembra essere la soluzione più fattibile attualmente disponibile.

Come spiega Chris Davis, “Quando una finestra viene creata per la prima volta, DWM utilizzerà un colore di sfondo bianco predefinito per la finestra. Ciò può causare un lampo bianco quando si mostra per la prima volta la finestra in modalità scura. Per evitare ciò, nascondiamo la finestra prima di mostrarla per la prima volta e forziamo una vernice del colore di sfondo desiderato prima di rimuovere il mascheramento”.

Un esame più approfondito dei commit di Chromium evidenzia modifiche a ui/views/win/hwnd_message_handler.cc.

Nello stato mascherato, il codice impiega chiamate GDI per riempire l’area client con un colore scuro. Dopo aver ottenuto la tonalità scura desiderata, Microsoft imposta DWMWA_CLOAKsu FALSE, svelando la finestra con la visuale scura prevista anziché con un brusco flash bianco.

Sebbene alcuni collaboratori abbiano espresso preoccupazioni circa potenziali condizioni di gara, in cui una GPU potrebbe riprodurre il contenuto della pagina mentre la finestra si aggiorna su uno sfondo scuro, i test di Microsoft non hanno rilevato tali problemi, il che suggerisce una transizione graduale una volta distribuita la patch.

Guardando al futuro, è plausibile che Google e Microsoft perfezioneranno il modo in cui Chromium gestisce le finestre di primo livello. Le soluzioni future potrebbero vedere l’implementazione di metodi come WS_EX_NOREDIRECTIONBITMAPo API Windows più recenti (ad esempio, DWM_SYSTEMBACKDROP_TYPE) per impedire del tutto il flash bianco.

Per il momento, tuttavia, verrà adottato il metodo di cloaking introdotto da Davis, eliminando l’effetto flash bianco sia su Windows 10 che su Windows 11. Ci si aspetta che questi miglioramenti vengano presto implementati per gli utenti di Chrome ed Edge.

Ulteriori approfondimenti

1. Qual è la causa del problema del flash bianco in Chrome ed Edge?

Il problema del flash bianco si verifica perché Windows imposta di default uno sfondo bianco ogni volta che viene creata una nuova finestra, in contrasto con le impostazioni del tema in modalità scura del browser.

2. Quali sono le implicazioni del metodo di cloaking proposto da Microsoft?

Il metodo di cloaking è una soluzione temporanea che nasconde la finestra finché lo sfondo scuro non può essere visualizzato correttamente. Ciò impedisce che il flash bianco appaia durante le transizioni della finestra.

3. I futuri aggiornamenti elimineranno completamente il flash bianco?

Sebbene l’attuale metodo di mascheramento risolva il problema del flash bianco, i futuri aggiornamenti potrebbero esplorare soluzioni più integrate all’interno di Chromium e Windows per risolvere in modo più efficace i problemi di fondo.

Fonte e immagini

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *