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(