Browse Source

chore: cherry-pick 7dd3b1c86795 from chromium (#28820)

* chore: cherry-pick 7dd3b1c86795 from chromium

* update patches

Co-authored-by: Electron Bot <[email protected]>
Pedro Pontes 4 years ago
parent
commit
d52c1ef201
2 changed files with 41 additions and 0 deletions
  1. 1 0
      patches/chromium/.patches
  2. 40 0
      patches/chromium/cherry-pick-7dd3b1c86795.patch

+ 1 - 0
patches/chromium/.patches

@@ -172,5 +172,6 @@ m86-lts_add_weak_pointer_to_rwhier_framesinkidownermap_and.patch
 cherry-pick-406ae3e8a9a8.patch
 cherry-pick-fe20b05a0e5e.patch
 cherry-pick-6b84dc72351b.patch
+cherry-pick-7dd3b1c86795.patch
 cherry-pick-1028ffc9bd83.patch
 cherry-pick-5745eaf16077.patch

+ 40 - 0
patches/chromium/cherry-pick-7dd3b1c86795.patch

@@ -0,0 +1,40 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Wez <[email protected]>
+Date: Thu, 15 Apr 2021 18:24:27 +0000
+Subject: Handle window deletion during HandleDisplayChange.
+
+In principle there is no reason why the HWNDMessageHandler shouldn't be
+deleted by a HandleDisplayChange() call out to the delegate, e.g. if the
+change results in a change in window layout.
+
+(cherry picked from commit 299155e5e37a77670b7969771e09e9a16b1f5612)
+
+Bug: 1192552
+Change-Id: I9fca35ff32e7037c6492f4cee7069e272059b920
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2804382
+Auto-Submit: Wez <[email protected]>
+Commit-Queue: Scott Violet <[email protected]>
+Reviewed-by: Scott Violet <[email protected]>
+Cr-Original-Commit-Position: refs/heads/master@{#869603}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2826321
+Cr-Commit-Position: refs/branch-heads/4430@{#1291}
+Cr-Branched-From: e5ce7dc4f7518237b3d9bb93cccca35d25216cbe-refs/heads/master@{#857950}
+
+diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
+index f6e9f97e47b44fa47e8e6c237be371754a5204bd..39518ac65d091bc52a26cf84b89fa350459e874b 100644
+--- a/ui/views/win/hwnd_message_handler.cc
++++ b/ui/views/win/hwnd_message_handler.cc
+@@ -1670,7 +1670,13 @@ void HWNDMessageHandler::OnDisplayChange(UINT bits_per_pixel,
+                                          const gfx::Size& screen_size) {
+   TRACE_EVENT0("ui", "HWNDMessageHandler::OnDisplayChange");
+ 
++  base::WeakPtr<HWNDMessageHandler> ref(msg_handler_weak_factory_.GetWeakPtr());
+   delegate_->HandleDisplayChange();
++
++  // HandleDisplayChange() may result in |this| being deleted.
++  if (!ref)
++    return;
++
+   // Force a WM_NCCALCSIZE to occur to ensure that we handle auto hide
+   // taskbars correctly.
+   SendFrameChanged();