![electron-roller[bot]](/assets/img/avatar_default.png)
* chore: bump chromium in DEPS to 141.0.7341.0 * chore: bump chromium in DEPS to 141.0.7342.0 * chore: update patches manually resolved conflict in `osr_shared_texture_remove_keyed_mutex_on_win_dxgi.patch` due to https://crrev.com/c/6681354 * 6819541: WebShare: Improve mac share behavior when sharing a URL https://chromium-review.googlesource.com/c/chromium/src/+/6819541 * Add missing include for SkBitmap Couldn't quickly find where we lost the full definition in this file's includes. 🤷 * 6771055: [SxS] Move devtools to ContentsContainerView supporting side-by-side. https://chromium-review.googlesource.com/c/chromium/src/+/6771055 There may be some simplification possible here (set_x, Rect position, ...), but this change is satisfactory to maintain the current behavior. * 6813689: Switch SystemMemoryInfoKB to use ByteCount https://chromium-review.googlesource.com/c/chromium/src/+/6813689 * 6818486: Track DevTools feature usage in new badge tracker https://chromium-review.googlesource.com/c/chromium/src/+/6818486 * chore: bump chromium in DEPS to 141.0.7344.0 * Remove ELECTRON_OZONE_PLATFORM_HINT env var 6819616: Remove OzonePlatformHint | https://chromium-review.googlesource.com/c/chromium/src/+/6819616 See: https://github.com/electron/electron/issues/48001 * chore: update patches * Add missing include for `base::NumberToString` * Remove `DESKTOP_STARTUP_ID` code This was removed upstream in https://chromium-review.googlesource.com/c/chromium/src/+/6819616 and I confirmed with the author that it was an intentional change. Going to mirror upstream and remove it here too. * chore: bump chromium in DEPS to 141.0.7346.0 * chore: update patches * 6828465: Reland "Remove BluezDBusThreadManager" https://chromium-review.googlesource.com/c/chromium/src/+/6828465 * Patch change to Node.js test output V8 enhanced the stack trace of "thenable" async tasks. A couple of Node.js tests needed to have their snapshots updates to accomodate the extra stack trace frames in the output. This patch should be upstreamed to Node.js. See: 6826001: fix thenable async stack trace https://chromium-review.googlesource.com/c/v8/v8/+/6826001 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: clavin <clavin@electronjs.org>
24 lines
1.7 KiB
Diff
24 lines
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Andy Locascio <andy@slack-corp.com>
|
|
Date: Wed, 21 Aug 2019 12:09:10 -0700
|
|
Subject: fix: disabling compositor recycling
|
|
|
|
Compositor recycling is useful for Chrome because there can be many tabs and spinning up a compositor for each one would be costly. In practice, Chrome uses the parent compositor code path of browser_compositor_view_mac.mm; the NSView of each tab is detached when it's hidden and attached when it's shown. For Electron, there is no parent compositor, so we're forced into the "own compositor" code path, which seems to be non-optimal and pretty ruthless in terms of the release of resources. Electron has no real concept of multiple tabs per window, so it should be okay to disable this ruthless recycling altogether in Electron.
|
|
|
|
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
index 59c8d5a2e687ac6148889c87f353b33959e276f6..7ef10194f02e32a9ec137f7f2519c4a834b81b7a 100644
|
|
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
@@ -561,7 +561,11 @@
|
|
return;
|
|
|
|
host()->WasHidden();
|
|
- browser_compositor_->SetRenderWidgetHostIsHidden(true);
|
|
+ // Consider the RWHV occluded only if it is not attached to a window
|
|
+ // (e.g. unattached BrowserView). Otherwise we treat it as visible to
|
|
+ // prevent unnecessary compositor recycling.
|
|
+ const bool unattached = ![GetInProcessNSView() window];
|
|
+ browser_compositor_->SetRenderWidgetHostIsHidden(unattached);
|
|
}
|
|
|
|
void RenderWidgetHostViewMac::SetSize(const gfx::Size& size) {
|