Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: lagging when using tabbed window (4-2-x) #18314

Merged
merged 1 commit into from May 16, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions patches/common/chromium/.patches
Expand Up @@ -100,3 +100,4 @@ make_--explicitly-allowed-ports_work_with_networkservice.patch
fix_crashes_in_renderframeimpl_onselectpopupmenuitem_s.patch
fix_re-entracy_problem_with_invalidateframesinkid.patch
chore_expose_getcontentclient_to_embedders.patch
tabbed_window_lagging.patch
30 changes: 30 additions & 0 deletions patches/common/chromium/tabbed_window_lagging.patch
@@ -0,0 +1,30 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Cheng Zhao <zcbenz@gmail.com>
Date: Thu May 16 13:52:12 JST 2019
Subject: tabbed_window_lagging.patch

Fix lagging when using tabbed windows.

Later Chromium has some enhancements on graphics code that fix the lagging
problem, but the changes are split in multiple commits on multiple files and
we can not just cherry-pick them.

Instead I'm just using the dummy fix and it does not seem to have side effects.

diff --git a/ui/views/cocoa/bridged_native_widget.mm b/ui/views/cocoa/bridged_native_widget.mm
index 69c5f1f44d7e..45aba19b2390 100644
--- a/ui/views/cocoa/bridged_native_widget.mm
+++ b/ui/views/cocoa/bridged_native_widget.mm
@@ -1037,6 +1037,12 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
// BridgedNativeWidget, ui::CATransactionObserver

bool BridgedNativeWidget::ShouldWaitInPreCommit() {
+ // Fix lagging when using tabbed windows, see the issue for more:
+ // https://github.com/electron/electron/issues/16925
+ if (@available(macOS 10.12, *)) {
+ if ([[window_ tabbedWindows] count] > 0)
+ return false;
+ }
if (!window_visible_)
return false;
if (ca_transaction_sync_suppressed_)