Microsoft résout le problème de flash blanc de Chrome et Edge en mode sombre pour Windows 11 et Windows 10

Microsoft résout le problème de flash blanc de Chrome et Edge en mode sombre pour Windows 11 et Windows 10

Grâce au passage de Microsoft à Chromium, les utilisateurs peuvent désormais profiter de fonctionnalités améliorées dans Google Chrome et Microsoft Edge. L’intégration a conduit à des améliorations significatives, notamment un défilement plus fluide, une gestion optimisée des polices et une meilleure efficacité de la batterie, en particulier pour Windows 11. Désormais, Microsoft se concentre sur l’amélioration des capacités du mode sombre aux côtés du gestionnaire de fenêtres du bureau (DWM.exe).

Cependant, un problème courant persiste : lorsqu’ils utilisent Chrome en mode sombre sur Windows 10 ou Windows 11, les utilisateurs rencontrent souvent un bref flash blanc lors de l’ouverture d’une nouvelle fenêtre. Ce phénomène indésirable met en évidence un problème où ni le navigateur ni le système d’exploitation ne savent gérer correctement le rendu initial, ce qui conduit à un écran intermédiaire disgracieux.

Cela se remarque également au démarrage de Chrome et Edge sous les paramètres du thème sombre du système d’exploitation. Bien que Google et Microsoft aient déjà abordé certains aspects de l’intégration du thème sombre, le défi reste particulièrement évident lors de la transition entre les fenêtres du navigateur. Des problèmes de flash similaires ont déjà été constatés dans l’Explorateur de fichiers Windows, mais ils ont été résolus dans la mise à jour Windows 11 23H2.

Gestion du flash blanc dans le mode sombre de Chromium

D’après une récente validation de code Chromium analysée par Windows Latest, il semble que le problème provienne du fait que Windows ne dispose pas de la gestion nécessaire pour les fenêtres Chrome nouvellement créées. Lors du lancement d’une nouvelle fenêtre, Windows 11 affiche par défaut un arrière-plan blanc, qui reste visible jusqu’à ce que Chrome ou Edge prenne le contrôle.

Flash blanc chromé
Flash blanc chromé | Image reproduite avec l’aimable autorisation de WindowsLatest.com

Dans ce contexte, lorsque Windows 11 fonctionne en mode sombre, la gestion des nouveaux affichages de fenêtres pose problème, Windows gérant dans un premier temps la phase de chargement jusqu’à ce que les applications respectives établissent leur rendu. Malheureusement, à ce stade, Windows ne prend pas en compte efficacement la gestion du thème sombre.

Chris Davis, un développeur Microsoft, a présenté une solution de contournement pour atténuer le flash blanc en implémentant une technique de masquage. Cela implique de masquer la fenêtre jusqu’à ce qu’un arrière-plan sombre approprié puisse être rendu par Chrome ou Edge. Bien qu’il s’agisse plus d’un correctif que d’une solution définitive au problème de DWM.exe, il semble que ce soit la résolution la plus réalisable actuellement disponible.

Comme l’explique Chris Davis, « lorsqu’une fenêtre est créée pour la première fois, DWM utilise une couleur d’arrière-plan blanche par défaut pour la fenêtre. Cela peut provoquer un flash blanc lors de la première visualisation de la fenêtre en mode sombre. Pour éviter cela, nous masquons la fenêtre avant de l’afficher pour la première fois et forçons une peinture de la couleur d’arrière-plan souhaitée avant de la dévoiler. »

Un examen plus approfondi des commits de Chromium indique des modifications apportées à ui/views/win/hwnd_message_handler.cc.

Dans l’état masqué, le code utilise des appels GDI pour remplir la zone client avec une couleur sombre. Une fois la teinte sombre souhaitée obtenue, Microsoft définit DWMWA_CLOAKsur FALSE, dévoilant la fenêtre avec le visuel sombre attendu plutôt qu’un flash blanc brusque.

Bien que certains contributeurs aient exprimé des inquiétudes concernant d’éventuelles conditions de concurrence (par lesquelles un GPU peut restituer le contenu d’une page lorsque la fenêtre se met à jour sur un arrière-plan sombre), les tests de Microsoft n’ont pas révélé de tels problèmes, ce qui suggère une transition en douceur une fois le correctif déployé.

À l’avenir, il est plausible que Google et Microsoft peaufinent la manière dont Chromium gère les fenêtres de niveau supérieur. Les solutions futures pourraient voir l’implémentation de méthodes telles que WS_EX_NOREDIRECTIONBITMAPou de nouvelles API Windows (par exemple, DWM_SYSTEMBACKDROP_TYPE) pour empêcher complètement le flash blanc.

Pour le moment, cependant, la méthode de dissimulation introduite par Davis sera adoptée, éliminant l’effet de flash blanc sur Windows 10 et Windows 11. Attendez-vous à ce que ces améliorations soient bientôt déployées pour les utilisateurs de Chrome et Edge.

Informations complémentaires

1. Quelle est la cause du problème de flash blanc dans Chrome et Edge ?

Le problème du flash blanc se produit parce que Windows utilise par défaut un arrière-plan blanc à chaque fois qu’une nouvelle fenêtre est créée, ce qui contraste avec les paramètres de thème du mode sombre du navigateur.

2. Quelles sont les implications de la méthode de cloaking proposée par Microsoft ?

La méthode de masquage est une solution temporaire qui masque la fenêtre jusqu’à ce que l’arrière-plan sombre puisse être affiché correctement. Cela empêche le flash blanc d’apparaître pendant les transitions de fenêtre.

3. Les futures mises à jour élimineront-elles complètement le flash blanc ?

Bien que la méthode de masquage actuelle traite le flash blanc, les futures mises à jour pourraient explorer des solutions plus intégrées dans Chromium et Windows pour éventuellement résoudre les problèmes sous-jacents plus efficacement.

Source et images

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *