Microsoft가 Chromium으로 전환한 덕분에 사용자는 이제 Google Chrome과 Microsoft Edge에서 향상된 기능을 즐길 수 있습니다. 이 통합으로 인해 더욱 부드러운 스크롤링, 최적화된 글꼴 처리, 특히 Windows 11에 대한 향상된 배터리 효율성 등 상당한 개선이 이루어졌습니다. 이제 Microsoft는 데스크톱 창 관리자(DWM.exe)와 함께 다크 모드 기능을 개선하는 데 주력하고 있습니다.
그러나 일반적인 문제가 지속됩니다. Windows 10 또는 Windows 11에서 Chrome을 다크 모드로 사용할 때 사용자는 종종 새 창을 여는 동안 짧은 흰색 플래시를 경험합니다. 이 원치 않는 현상은 브라우저나 운영 체제가 초기 렌더링을 올바르게 관리하는 방법을 알지 못하는 문제를 강조하여 보기 흉한 중간 화면이 발생합니다.
이는 운영 체제의 어두운 테마 설정에서 Chrome과 Edge를 시작할 때도 마찬가지로 눈에 띕니다. Google과 Microsoft는 모두 이전에 어두운 테마 통합의 측면을 다루었지만, 브라우저 창 간의 전환 중에 특히 문제가 여전히 분명합니다. 이전에 Windows 파일 탐색기에서 유사한 플래시 문제가 발견되었지만, 이러한 문제는 Windows 11 23H2 업데이트에서 해결되었습니다.
크롬 다크 모드에서 흰색 플래시 해결
Windows Latest에서 분석한 최근 Chromium 코드 커밋 에 따르면 , 이 문제는 Windows가 새로 만든 Chrome 창에 필요한 처리가 부족해서 발생하는 것으로 보입니다. 새 창을 시작하면 Windows 11은 기본적으로 흰색 배경으로 설정되어 Chrome이나 Edge가 제어를 주장할 때까지 계속 표시됩니다.
이 맥락에서 Windows 11이 다크 모드로 작동할 때 새 창 디스플레이 관리가 문제를 일으키며, Windows는 각 애플리케이션이 렌더링을 확립할 때까지 로드 단계를 처음에 처리합니다. 유감스럽게도 이 단계에서 Windows는 다크 테마 관리를 효과적으로 인식하지 못합니다.
Microsoft 개발자인 Chris Davis는 클로킹 기술을 구현하여 흰색 플래시를 완화하는 해결 방법을 도입했습니다. 이는 Chrome이나 Edge에서 적절한 어두운 배경을 렌더링할 수 있을 때까지 창을 숨기는 것을 포함합니다. 이는 DWM.exe 문제에 대한 확실한 해결책이라기보다는 패치에 가깝지만 현재 사용 가능한 가장 실행 가능한 해결책인 듯합니다.
Chris Davis가 설명했듯이, “창이 처음 생성될 때 DWM은 창에 기본 흰색 배경색을 사용합니다. 이로 인해 창을 처음 다크 모드로 표시할 때 흰색 플래시가 발생할 수 있습니다. 이를 방지하기 위해 창을 처음 표시하기 전에 창을 클로킹하고 클로킹을 해제하기 전에 의도한 배경색을 강제로 페인트합니다.”
Chromium 커밋을 추가로 조사한 결과 ui/views/win/hwnd_message_handler.cc
, . 에 대한 수정 사항이 발견되었습니다.
클로킹 상태에서 코드는 GDI 호출을 사용하여 클라이언트 영역을 어두운 색상으로 채웁니다. 원하는 어두운 색조를 달성하면 Microsoft는 DWMWA_CLOAK
를 설정하여 FALSE
갑작스러운 흰색 플래시가 아닌 예상한 어두운 시각적 효과로 창을 드러냅니다.
일부 기여자들은 창이 어두운 배경으로 업데이트될 때 GPU가 페이지 콘텐츠를 렌더링할 수 있는 잠재적인 경쟁 조건에 대해 우려를 표명했지만, Microsoft의 테스트에서는 그러한 문제가 발견되지 않았으므로 패치가 배포되면 원활하게 전환될 것으로 보입니다.
앞으로는 Google과 Microsoft가 Chromium이 최상위 창을 관리하는 방식을 개선할 가능성이 있습니다. 향후 솔루션에서는 흰색 플래시를 완전히 방지하기 위해 와 같은 방법 WS_EX_NOREDIRECTIONBITMAP
이나 최신 Windows API(예: )를 구현할 수 있습니다.DWM_SYSTEMBACKDROP_TYPE
그러나 당장은 Davis가 도입한 클로킹 방법이 채택되어 Windows 10과 Windows 11에서 모두 흰색 플래시 효과가 제거됩니다. 이러한 개선 사항이 Chrome 및 Edge 사용자에게 곧 출시될 것으로 예상됩니다.
추가 통찰력
1. Chrome 및 Edge에서 발생하는 흰색 플래시 문제의 원인은 무엇인가요?
흰색 플래시 문제는 Windows가 새 창을 만들 때마다 기본적으로 흰색 배경으로 설정되기 때문에 발생하는데, 이는 브라우저의 다크 모드 테마 설정과 대조됩니다.
2. Microsoft에서 제안한 클로킹 방법의 의미는 무엇입니까?
클로킹 방법은 어두운 배경이 제대로 표시될 때까지 창을 숨기는 임시 해결책입니다. 이렇게 하면 창 전환 중에 흰색 플래시가 나타나지 않습니다.
3. 향후 업데이트에서는 흰색 플래시가 완전히 없어질까요?
현재의 클로킹 방법은 백색 플래시 문제를 해결하지만, 향후 업데이트에서는 Chromium과 Windows 내에서 더욱 통합된 솔루션을 모색하여 결국 근본적인 문제를 더욱 효과적으로 해결할 수 있을 것입니다.
답글 남기기