From ba4cbb97f5e34a619e11d48fb19bc4adf653493b Mon Sep 17 00:00:00 2001 From: Bill Carr <wicarr@microsoft.com> Date: Mon, 10 Oct 2022 18:24:11 +0000 Subject: [PATCH] Make MF Utility Process DPI Aware This change makes the MF Utility Process DPI Aware by calling EnableHighDPISupport in UtilityMain. This is needed to allow the Media Foundation Media Engine to correctly identify the monitor where the Direct Composition surface for the content will be presented. In the case of SW DRM this is required to set OPM properties on the monitor. For HW DRM this is required to allow proper querying of HW properties of the target monitor. Failures here could result in no video output. Additionally, as a refactor to move responsibility out of the embedder this change moves the existing EnableHighDPISupport calls in chrome_exe_main_win.cc into the respective GpuMain & BrowserMainRunnerImpl for the GPU & Browser processes. A sample setup where the MF Utility Process may be required to be DPI aware (SW DRM) would be a 4K monitor @ 150% DPI scaling & another 1080P monitor @ 150% positioned below that monitor. Without DPI awareness if the DComp surface being presented to is on the secondary monitor the Media Engine would calculate the primary monitor's virtual coordinates as 3840 x 2160 at 0,0 and the secondary monitor as 1920 x 1080 at 0, 2160. In reality the virtual coordinates of the primary monitor would be 2560 x 1440 at 0,0 so we'd expect the secondary monitor at 1280 x 720 at 0, 1440. When the engine is given the target DComp surface at 1280 x 720 at 0, 1440 it will end up identifying this as within the primary monitor's region (since it calculates that region as 3840 x 2160 which will completely enclose 0, 1440, 1280, 2160). As a result the primary monitor will be marked with any properties required for the DRM engine's presentation. A couple of blink web tests (virtual/scalefactor*/fast/hidpi) ended up needing re-baselining. This appears to be a result of moving the EnableHighDPISupport for Browser out of wWinMain in chrome_exe_main_win and into BrowserMainRunnerImpl::Initialize. When content shell is running BrowserMainRunnerImpl::Initialize will be called (in turn enabling High DPI Support) however the previous wWinMain code was not called with an empty process Id, thus it was not calling EnableHighDPISupport. As a result in this change in calling EnableHighDPISupport there were some minor discrepancies in OS UX, like scroll bars, for some of the expected images. Bug: 1369598 Change-Id: Ia64173cea960da9bdf23aad878cb199f44a4363a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3898640 Auto-Submit: William Carr <wicarr@microsoft.com> Reviewed-by: Charlie Reis <creis@chromium.org> Reviewed-by: Ken Rockot <rockot@google.com> Commit-Queue: Ken Rockot <rockot@google.com> Cr-Commit-Position: refs/heads/main@{#1057058} --- chrome/app/chrome_exe_main_win.cc | 4 ---- content/browser/browser_main_runner_impl.cc | 2 ++ content/gpu/gpu_main.cc | 2 ++ content/utility/utility_main.cc | 16 ++++++++++++++++ .../static/popup-menu-appearance-expected.png | Bin 8576 -> 8581 bytes ...ation-bubble-appearance-hidpi-expected.png | Bin 9410 -> 9410 bytes .../static/popup-menu-appearance-expected.png | Bin 13115 -> 13101 bytes ...ation-bubble-appearance-hidpi-expected.png | Bin 14023 -> 14023 bytes 8 files changed, 20 insertions(+), 4 deletions(-) diff --git a/chrome/app/chrome_exe_main_win.cc b/chrome/app/chrome_exe_main_win.cc index 319f03ffaa9bb..19921d07f82fb 100644 --- a/chrome/app/chrome_exe_main_win.cc +++ b/chrome/app/chrome_exe_main_win.cc @@ -380,10 +380,6 @@ int main() { // The exit manager is in charge of calling the dtors of singletons. base::AtExitManager exit_manager; - // Only enable High DPI support for browser and GPU process. - if (process_type.empty() || process_type == switches::kGpuProcess) - base::win::EnableHighDPISupport(); - if (AttemptFastNotify(*command_line)) return 0; diff --git a/content/browser/browser_main_runner_impl.cc b/content/browser/browser_main_runner_impl.cc index 6a2302dd99dbe..ca75beb5df7ea 100644 --- a/content/browser/browser_main_runner_impl.cc +++ b/content/browser/browser_main_runner_impl.cc @@ -36,6 +36,7 @@ #endif #if BUILDFLAG(IS_WIN) +#include "base/win/win_util.h" #include "base/win/windows_version.h" #include "ui/base/win/scoped_ole_initializer.h" #endif @@ -91,6 +92,7 @@ int BrowserMainRunnerImpl::Initialize(MainFunctionParams parameters) { notification_service_ = std::make_unique<NotificationServiceImpl>(); #if BUILDFLAG(IS_WIN) + base::win::EnableHighDPISupport(); // Ole must be initialized before starting message pump, so that TSF // (Text Services Framework) module can interact with the message pump // on Windows 8 Metro mode. diff --git a/content/gpu/gpu_main.cc b/content/gpu/gpu_main.cc index 160763ceb3318..5c3bcea340870 100644 --- a/content/gpu/gpu_main.cc +++ b/content/gpu/gpu_main.cc @@ -80,6 +80,7 @@ #if BUILDFLAG(IS_WIN) #include "base/trace_event/trace_event_etw_export_win.h" #include "base/win/scoped_com_initializer.h" +#include "base/win/win_util.h" #include "base/win/windows_version.h" #include "media/gpu/windows/dxva_video_decode_accelerator_win.h" #include "media/gpu/windows/media_foundation_video_encode_accelerator_win.h" @@ -218,6 +219,7 @@ int GpuMain(MainFunctionParams parameters) { base::TimeTicks start_time = base::TimeTicks::Now(); #if BUILDFLAG(IS_WIN) + base::win::EnableHighDPISupport(); base::trace_event::TraceEventETWExport::EnableETWExport(); // Prevent Windows from displaying a modal dialog on failures like not being diff --git a/content/utility/utility_main.cc b/content/utility/utility_main.cc index 1520e8feba29e..c15f7b9bbcbdf 100644 --- a/content/utility/utility_main.cc +++ b/content/utility/utility_main.cc @@ -70,6 +70,7 @@ #if BUILDFLAG(IS_WIN) #include "base/rand_util.h" +#include "base/win/win_util.h" #include "base/win/windows_version.h" #include "sandbox/win/src/sandbox.h" @@ -246,6 +247,21 @@ int UtilityMain(MainFunctionParams parameters) { UNREFERENCED_PARAMETER(shell32_pin); } + // Not all utility processes require DPI awareness as this context only + // pertains to certain workloads & impacted system API calls (e.g. UX + // scaling or per-monitor windowing). We do not blanket apply DPI awareness + // as utility processes running within a kService sandbox with the Win32K + // Lockdown policy applied may crash when calling EnableHighDPISupport. See + // crbug.com/978133. + if (sandbox_type == sandbox::mojom::Sandbox::kMediaFoundationCdm) { + // The Media Foundation Utility Process needs to be marked as DPI aware so + // the Media Engine & CDM can correctly identify the target monitor for + // video output. This is required to ensure that the proper monitor is + // queried for hardware capabilities & any settings are applied to the + // correct monitor. + base::win::EnableHighDPISupport(); + } + if (!sandbox::policy::IsUnsandboxedSandboxType(sandbox_type) && sandbox_type != sandbox::mojom::Sandbox::kCdm && sandbox_type != sandbox::mojom::Sandbox::kMediaFoundationCdm && diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png index 45cedaf6d809e4845a3c28b593743881c887dc2f..ec3327479b123822042d62e2433fb61827e350dd 100644 GIT binary patch literal 8581 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 literal 8576 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 diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index cd45df5ff7221c07950e664cb30194fc44ed3864..dcaf63f38f5e0cf930b8a9d53179b13b5d8523ae 100644 GIT binary patch delta 129 zcmV-{0Dk|%Ny15xG9+SRFlI4kF*Y}4VKX%`F=1giVq`dFG&C?`Wo0%sGh-p?l<~1v zn*kPeV(0+?006Mu#fujk-0RGlGZm+Fg_B_t6O&&8E0f>>OtX;!%^eJp+3Z{Z00c-$ jL_t)uQ58W17wZ23{Tp}t`J+Ai00000NkvXXu0mjf1Wzz) delta 125 zcmX@)dB}5ukxHV0Nt&glp+%yhv3aV2g{8S=vPr5%O0rS1MXI4iszHH@X#K{p*^HCz znM}myN>nibflm3yM@QMdTNOX^IjR|}I5|K_Wpg~!e_5V`%Z>OM7+5?!T^vI;2Z}nf bh`;*JD7Uoy_otN%<{+J(u6{1-oD!M<<0mNp diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/popup-menu-appearance-expected.png index 7d325df9aab9b95d2d4c0145ca99467949a74c7b..8514171ea4cb6e46bdbcd88d0606e6ee44d1c501 100644 GIT binary patch literal 13101 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 literal 13115 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 I!tLgN0dC7-#{d8T diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index dd9fc5256656864224a7c43b786291bc0186ae04..7a792e8a34ba6321493478de7d7e23644d0f1e64 100644 GIT binary patch delta 109 zcmX?}dpvi7k&2l`lBtQIxrw=1nwf=#X<ABRTB2F1iD`;qs(G5FnQ_ZUCDx5$hD?)x zGIdOLU@F?&$b46Zr?Gt9eFg?GUr!gukj)2`6WBI4$b>U*R@9orBXZl|{yrx0!!H<s Nz|+;wWt~$(69Db>B`yE} delta 109 zcmX?}dpvi7kxELUK}w>Lv3aUNN~)=)iBWP=vXOzIL6Tu&Vwz!El7(DwT-nAjL#D|J zvPF~InL0K%GT)WqY45Up#K0it>*?YcviYEL0^8;WnQ-RKidvI+MC8ow?{nu|n8yGF Mp00i_>zopr0Ml_Jm;e9(