mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
* chore: bump chromium in DEPS to 122.0.6240.1 * chore: bump chromium in DEPS to 122.0.6241.6 * chore: bump chromium in DEPS to 122.0.6245.1 * chore: bump chromium in DEPS to 122.0.6247.1 * chore: bump chromium in DEPS to 122.0.6249.1 * chore: bump chromium in DEPS to 122.0.6251.1 * chore: bump chromium in DEPS to 122.0.6253.1 * chore: bump chromium in DEPS to 122.0.6255.1 * chore: bump chromium in DEPS to 122.0.6257.1 * chore: bump chromium in DEPS to 122.0.6259.1 * chore: bump chromium in DEPS to 122.0.6259.3 * chore: bump chromium in DEPS to 122.0.6259.5 * chore: bump chromium in DEPS to 122.0.6260.0 * chore: bump chromium in DEPS to 122.0.6261.1 * chore: bump chromium in DEPS to 122.0.6261.6 * chore: update patches (cherry picked from commitdde66c3589) * refactor: extensions replaced StringPiece with string_view Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5171926 (cherry picked from commitc7031d5c05) * chore: update patches (cherry picked from commit95b04b1fca) * 5192010: Rename {absl => std}::optional in //chrome/ https://chromium-review.googlesource.com/c/chromium/src/+/5192010 (cherry picked from commit55e5867614) * 5109767: CodeHealth: Fix leaked raw_ptr in Linux ProcessSingleton https://chromium-review.googlesource.com/c/chromium/src/+/5109767 (cherry picked from commit7b2efc7586) * 5105227: [media_preview] Show requested device in permission bubble https://chromium-review.googlesource.com/c/chromium/src/+/5105227 (cherry picked from commit10d61636c6) * chore: update patches (cherry picked from commitd04ebc7b07) * 5180720: Polish tiled browser window UI on Linux | https://chromium-review.googlesource.com/c/chromium/src/+/5180720 (cherry picked from commit3dbbb67dbc) * chore: update patches (cherry picked from commit18a5961e4e) * chore: update patches (cherry picked from commit69e0bfefcc) * 5186276: [autopip] Make "allow once" per navigation | https://chromium-review.googlesource.com/c/chromium/src/+/5186276 (cherry picked from commit412f70681a) * chore: update patches (cherry picked from commite4d2a2ded0) * 5190661: Automated T* -> raw_ptr<T> rewrite "refresh" | https://chromium-review.googlesource.com/c/chromium/src/+/5190661 (cherry picked from commit6b41b72130) * 5206106: Make sure RenderFrameHosts are active when printing | https://chromium-review.googlesource.com/c/chromium/src/+/5206106 (cherry picked from commit9a788c0c60) * 5202674: Reland "Automated T* -> raw_ptr<T> rewrite 'refresh'" https://chromium-review.googlesource.com/c/chromium/src/+/5202674 (cherry picked from commit55daca952d) * fixup CodeHealth: Fix leaked raw_ptr in Linux ProcessSingleton https://chromium-review.googlesource.com/c/chromium/src/+/5109767 (cherry picked from commit047898ba92) * fixup 5206106: Make sure RenderFrameHosts are active when printing (cherry picked from commit715c534cd8) * Make legacy ToV8() helpers private to ScriptPromiseResolver, their only user https://chromium-review.googlesource.com/c/chromium/src/+/5207474 (cherry picked from commit9a10062d8c) * fixup CodeHealth: Fix leaked raw_ptr in Linux ProcessSingleton (cherry picked from commita1f643b25e) * fixup 5186276: [autopip] Make "allow once" per navigation https://chromium-review.googlesource.com/c/chromium/src/+/5186276 (cherry picked from commite3c40ed923) * 5191363: Mark LOG(FATAL) [[noreturn]] https://chromium-review.googlesource.com/c/chromium/src/+/5191363 (cherry picked from commit8037cef988) * fixup 5186276: [autopip] Make "allow once" per navigation https://chromium-review.googlesource.com/c/chromium/src/+/5186276 (cherry picked from commite60c31dd4f) * fixup Make legacy ToV8() helpers private to ScriptPromiseResolver https://chromium-review.googlesource.com/c/chromium/src/+/5207474 (cherry picked from commitb02108e0c0) * chore: update patches (cherry picked from commit96e8574115) * chore: update patches (cherry picked from commite0f51957be) * chore: restore patch that was mistakenly removed (cherry picked from commit4057b5439c) * 5181931: Improve LoginHandler (Part 9 / N) https://chromium-review.googlesource.com/c/chromium/src/+/5181931 (cherry picked from commit6ad8028fe8) * Dispatch SiteInstanceGotProcess() only when both process and site are set. https://chromium-review.googlesource.com/c/chromium/src/+/5142354 (cherry picked from commita871198a23) * 5171446: [AsyncSB] Pass navigation_id into CreateURLLoaderThrottles https://chromium-review.googlesource.com/c/chromium/src/+/5171446 (cherry picked from commitebf2efcedd) * 5213708: Move DownloadTargetInfo into components/download https://chromium-review.googlesource.com/c/chromium/src/+/5213708 (cherry picked from commitc361ded147) * extensions: Add a loader for Controlled Frame embedder scripts https://chromium-review.googlesource.com/c/chromium/src/+/5202765 (cherry picked from commit63d2773d15) * [CSC][Zoom] Add initial_zoom_level to DisplayMediaInformation https://chromium-review.googlesource.com/c/chromium/src/+/5168626 (cherry picked from commita4b5c9ce31) * fix: suppress clang -Wimplicit-const-int-float-conversion (cherry picked from commit979bde6683) * fixup 5191363: Mark LOG(FATAL) [[noreturn]] for Windows https://chromium-review.googlesource.com/c/chromium/src/+/5191363 (cherry picked from commit759f1740a8) * 5167921: Remove Widget::IsTranslucentWindowOpacitySupported https://chromium-review.googlesource.com/c/chromium/src/+/5167921 Also 5148392: PinnedState: Support pinned state in PlatformWindowState | https://chromium-review.googlesource.com/c/chromium/src/+/5148392 (cherry picked from commit53d9c82a57) * fixup: 5180720: Polish tiled browser window UI on Linux https://chromium-review.googlesource.com/c/chromium/src/+/5180720 (cherry picked from commite565db5095) * 5170669: clipboard: Migrate DOMException constructors to RejectWith- https://chromium-review.googlesource.com/c/chromium/src/+/5170669 (cherry picked from commit5409118134) * 5178824: [Fullscreen] Record UKM data https://chromium-review.googlesource.com/c/chromium/src/+/5178824 (cherry picked from commit3d53a6ec01) * chore: update patches after rebase (cherry picked from commit3a6a335a05) * chore: update patches after cherry picks * chore: update patches after rebase --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: VerteDinde <vertedinde@electronjs.org> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
25 lines
1.7 KiB
Diff
25 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 8e89fb47039493ae0040b0789a3e9ed2f742464e..6837c7a1046f37eb8ffa6825af4f9c6b333d38c5 100644
|
|
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
|
@@ -557,7 +557,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) {
|