electron/patches/chromium/disable-redraw-lock.patch
Electron Bot 69f1731bbb
chore: bump chromium to ec5bc1743792d64724693eb357083 (master) (#24984)
* chore: bump chromium in DEPS to cbdeef954dfc34e94c8ca9cf72ad326b4a121158

* chore: bump chromium in DEPS to 29723f905baeab1d4228eef2c31cdb341ebeffe0

* chore: bump chromium in DEPS to 44d6d78e852137fff58c14ed26ab1e803e5bf822

* update patches

* chore: bump chromium in DEPS to 8a3a0fccb39d6b8334c9a0496c0d5056e50cdb3f

* chore: update patches

* refactor: fix PrintBackend::CreateInstance() calls

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2354541

* chore: bump chromium in DEPS to b9ebec3bcb1cabdd1426f367636f54cc98e0500e

* chore: remove patches to code that was deleted upstream

CL: https://chromium-review.googlesource.com/c/chromium/src/+/2360314

* Remove uses of kCGColorSpaceITUR_2020_PQ_EOTF/HLG

CL: https://chromium-review.googlesource.com/c/chromium/src/+/2363950

just garden variety code shear

* chore: update patch indices

* Move ColorModel to //printing/mojom/print.mojom

https://chromium-review.googlesource.com/c/chromium/src/+/2355083

sync with printing ColorModel changes: moved to mojo, different naming scheme

* chore: bump chromium in DEPS to 56c4b4d2ce5ba941acd2e0fdb5100e8a48847134

* chore: bump chromium in DEPS to 130501f220b684a79dc82c17e236e63ac1f2a093

* Convert PrintHostMsg_DidGetPrintedPagesCount to Mojo

https://chromium-review.googlesource.com/c/chromium/src/+/2326857

Update argument list to Print()

* chore: update patch indices

* DumpAccTree: convert utf16 to utf8 in PropertyFilter

https://chromium-review.googlesource.com/c/chromium/src/+/2360218

* chore: bump chromium in DEPS to 3058368c6646e0dc8be6f8ea838b0343428b7998

* chore: bump chromium in DEPS to f51b4e6555364363c61438dac7afd988c8347bfc

* chore: bump chromium in DEPS to 2dcc6f8fc23ac41b2499eb69dee0b4017e9d1046

* update patches

* chore: bump chromium in DEPS to 2d8e98ecedc7e4905540b053bc1c87e964715be5

* update patches

* 2345900: Move content::RecordContentToVisibleTimeRequest struct to mojo

https://chromium-review.googlesource.com/c/chromium/src/+/2345900

* update patches

* 2345900: Move content::RecordContentToVisibleTimeRequest struct to mojo

https://chromium-review.googlesource.com/c/chromium/src/+/2345900

* 2367394: Remove net::LOAD_DO_NOT_SEND_COOKIES and net::LOAD_DO_NOT_SEND_AUTH_DATA.

https://chromium-review.googlesource.com/c/chromium/src/+/2367394

* 2373227: [XProto] Consolidate all <X11/*> includes to //ui/gfx/x/x11.h

https://chromium-review.googlesource.com/c/chromium/src/+/2373227

* fixup! 2373227: [XProto] Consolidate all <X11/*> includes to //ui/gfx/x/x11.h

* chore: bump chromium in DEPS to c090e3f960520cbd2328608b97f87238c76d6143

* update patches

* chore: bump chromium in DEPS to 13a25e0a755de9a14271022c595f3d2e29829e1a

* chore: bump chromium in DEPS to 6adbb767b012c41efaeab0d1bdbb3eefed0977bc

* chore: bump chromium in DEPS to 339ec5455c5932ef1322ea9953a6349b0732199e

* chore: bump chromium in DEPS to 20291807c33f7ef4ef4f57d62075e099b027bfe6

* chore: bump chromium in DEPS to 226fbd1b8b17d4ac84fdb9548ef3a1c646878d47

* update patches

* fixup disable_color_correct_rendering patch

* chore: bump chromium in DEPS to 577c45979cad4359f2e206d68efd9317d3d79315

* update patches

* viz: Rename RenderPass to CompositorRenderPass (and related types).

https://chromium-review.googlesource.com/c/chromium/src/+/2380730

* chore: bump chromium in DEPS to 37e2ad5303f2c03a1b5d8eda65341bf2561196cd

* update patches

* add kOmitCookies_Electron

* update patch

* chore: bump chromium in DEPS to 256e42409ea63a7e71016de07818a983a97db463

* update patches

* fix worker script ready hook

https://chromium-review.googlesource.com/c/chromium/src/+/2335713

* Fixup printing page ranges patch

* [printing] Move PrintMsg_PrintPages_Params to print.mojom

https://chromium-review.googlesource.com/c/chromium/src/+/2340854

* Add MIME sniffer overloads that take base::StringPieces

https://chromium-review.googlesource.com/c/chromium/src/+/2382896

* [printing] Move PrintHostMsg_PreviewIds to print.mojom

https://chromium-review.googlesource.com/c/chromium/src/+/2379455

* fixup test due to new DCHECK

https://chromium-review.googlesource.com/c/chromium/src/+/2333750

* stop sending cookies when useSessionCookies is false

* chore: bump chromium in DEPS to dd429dbc556449951ee8160d8a4d61fd95a139d5

* update patches

* chore: bump chromium in DEPS to 5202bde3f9f44c2065f5dacf27e7000dd19e4e4d

* chore: bump chromium in DEPS to 099e8e07b89da65932431bb0fd51b6f7f5344c19

* chore: bump chromium in DEPS to 104e5da2a43b759732d5b94bfc750b3a9a639653

* chore: bump chromium in DEPS to a4519ce657af25834e355315fd7fefa77b13426a

* update patches

* Make FileURLLoaderFactory always owned by its |receivers_|.

https://chromium-review.googlesource.com/c/chromium/src/+/2337411

* Make FileURLLoaderFactory always owned by its |receivers_|.

https://chromium-review.googlesource.com/c/chromium/src/+/2337411

* chore: bump chromium in DEPS to 1b62e9e8c8eaf6b8e3a9c77ee67a4c1bfa6a4d6b

* chore: update patches

* fixup! Make FileURLLoaderFactory always owned by its |receivers_|.

* chore: update patches

- mac: Disable CoreServices _CSCheckFix.
  https://chromium-review.googlesource.com/c/chromium/src/+/2401334
- [XProto] Remove bad DCHECK in x11_error_tracker.cc
  https://chromium-review.googlesource.com/c/chromium/src/+/2402304
- Move content/browser/frame_host/* over to content/browser/renderer_host/
  https://chromium-review.googlesource.com/c/chromium/src/+/2401303

* Refactor WebContentSettingsClient to dedupe AllowXYZ methods

https://chromium-review.googlesource.com/c/chromium/src/+/2353552

* Introduce NonNetworkURLLoaderFactoryBase class.

https://chromium-review.googlesource.com/c/chromium/src/+/2357559

* [XProto] Remove usage of all Xlib headers

https://chromium-review.googlesource.com/c/chromium/src/+/2392140

* fixup! chore: update patches

* chore: bump chromium in DEPS to c1df55fbeb8207d036a604f59e4ea4e8ee79930a

* chore: update patches

* Move content::WebPreferences struct to Blink

https://chromium-review.googlesource.com/c/chromium/src/+/2397670

* chore: bump chromium in DEPS to 57a23ec4884fff6c2f8d9b8536131cdc9b551ec2

* Set appid on Pip windows.

https://chromium-review.googlesource.com/c/chromium/src/+/2388274

* fixup! Set appid on Pip windows.

* fix: add a patch to remove deprecated factory

* chore: bump chromium in DEPS to 1a9ddb7ea43955877823d5c4dcbf241b64228635

* fix compilation on windows

* chore: bump chromium in DEPS to 234e6c6a77f61ffad9335099d9b13892cf88fd44

* chore: update patches

* chore: bump chromium in DEPS to 7631eb0a9f57a8a47d3c28e1d265961b3a4d6b2b

* chore: update patches

* chore: bump chromium in DEPS to f9c34cd485845b95c2d17a7f55fdf92cda9a1b3a

* chore: update patches

* chore: implement GetSurveyAPIKey

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2362182

* chore: replace CreateWebUIURLLoader with CreateWebUIURLLoaderFactory

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2358309

* chore: bump chromium in DEPS to 5bdbd2373da884adf41c087be1465fcc344d168c

* chore: update node patches for common.gypi

* chore: update patches

* chore: non_network_url_loader_factory_base was moved

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2357431

* 2415752: Reland "Reland "OOR-CORS: Remove BlinkCORS supporting code outside Blink""

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2415752

* chore: bump chromium in DEPS to b943d006a33ec5bc1743792d64724693eb357083

* fix: replace x11::None with x11::Window::None

* chore: update patches

* chore: update patches

* fix: cast x11::Window to int

* 2402123: Use end date when deleting http auth cache

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2402123

* 2320268: Migrate DragHostMsg_StartDragging to Mojo

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2320268

* 2401303: Move content/browser/frame_host/* over to content/browser/renderer_host/

https://chromium-review.googlesource.com/c/chromium/src/+/2401303

* chore: fix lint

* chore: fix build

* Update config.yml

Co-authored-by: Electron Bot <anonymous@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Co-authored-by: Jeremy Rose <nornagon@nornagon.net>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
Co-authored-by: Samuel Attard <sattard@slack-corp.com>
2020-09-21 01:00:36 -07:00

76 lines
3.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Heilig Benedek <benecene@gmail.com>
Date: Thu, 20 Sep 2018 17:47:54 -0700
Subject: disable-redraw-lock.patch
Chromium uses a custom window titlebar implementation on Windows when DWM
is disabled (Windows 7 and earlier, non Aero theme). The native titlebar
sometimes painted over this custom titlebar, so a workaround was put in
place to lock redraws in reaction to certain events if DWM is disabled,
since the code assumes that in that case, the custom titlebar is painted.
Electron forces the use of the native titlebar, which the workaround doesn't
take into account, and still locks redraws, causing weird repainting issues
in electron (and other applications). This patch provides a way to disable
the redraw locking mechanism, which fixes these issues. The electron issue
can be found at https://github.com/electron/electron/issues/1821
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
index 5e8d267d868d4a8d90b7c4652c3be4d4df87d500..6838a9bb1b17d66f3653dd81dca616fee7c2ba41 100644
--- a/ui/views/win/hwnd_message_handler.cc
+++ b/ui/views/win/hwnd_message_handler.cc
@@ -306,6 +306,10 @@ constexpr int kSynthesizedMouseMessagesTimeDifference = 500;
} // namespace
+bool HWNDMessageHandlerDelegate::HasNativeFrame() const {
+ return false;
+}
+
// A scoping class that prevents a window from being able to redraw in response
// to invalidations that may occur within it for the lifetime of the object.
//
@@ -357,6 +361,7 @@ class HWNDMessageHandler::ScopedRedrawLock {
cancel_unlock_(false),
should_lock_(owner_->IsVisible() && !owner->HasChildRenderingWindow() &&
::IsWindow(hwnd_) &&
+ !owner_->HasNativeFrame() &&
(!(GetWindowLong(hwnd_, GWL_STYLE) & WS_CAPTION) ||
!ui::win::IsAeroGlassEnabled())) {
if (should_lock_)
@@ -970,6 +975,10 @@ HWNDMessageHandler::RegisterUnadjustedMouseEvent() {
return scoped_enable;
}
+bool HWNDMessageHandler::HasNativeFrame() {
+ return delegate_->HasNativeFrame();
+}
+
////////////////////////////////////////////////////////////////////////////////
// HWNDMessageHandler, gfx::WindowImpl overrides:
diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h
index 7118ff56f0dd1c6291e4095ce7f3d8fc723f0398..5dbaab15ee1667ed1caf0b746b8e31d1b12a7b52 100644
--- a/ui/views/win/hwnd_message_handler.h
+++ b/ui/views/win/hwnd_message_handler.h
@@ -203,6 +203,8 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
using TouchIDs = std::set<DWORD>;
enum class DwmFrameState { kOff, kOn };
+ bool HasNativeFrame();
+
// Overridden from WindowImpl:
HICON GetDefaultWindowIcon() const override;
HICON GetSmallWindowIcon() const override;
diff --git a/ui/views/win/hwnd_message_handler_delegate.h b/ui/views/win/hwnd_message_handler_delegate.h
index 7344cdd4cf7d68da617b81cbdf464a859a40fb09..9ec1f23b26b41e10a46be0ca5d254583b6534ecb 100644
--- a/ui/views/win/hwnd_message_handler_delegate.h
+++ b/ui/views/win/hwnd_message_handler_delegate.h
@@ -46,6 +46,8 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate {
// True if the widget associated with this window has a non-client view.
virtual bool HasNonClientView() const = 0;
+ virtual bool HasNativeFrame() const;
+
// Returns who we want to be drawing the frame. Either the system (Windows)
// will handle it or Chrome will custom draw it.
virtual FrameMode GetFrameMode() const = 0;