disable_hidden.patch 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
  2. From: Cheng Zhao <[email protected]>
  3. Date: Thu, 20 Sep 2018 17:45:47 -0700
  4. Subject: disable_hidden.patch
  5. Electron uses this to disable background throttling for hidden windows.
  6. diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
  7. index fc06067480b091cd9051e4068180c999b0d1753b..2bb18f88be18093cd5b4d97ae2f8a43edf86b3ed 100644
  8. --- a/content/browser/renderer_host/render_widget_host_impl.cc
  9. +++ b/content/browser/renderer_host/render_widget_host_impl.cc
  10. @@ -660,6 +660,9 @@ void RenderWidgetHostImpl::WasHidden() {
  11. if (is_hidden_)
  12. return;
  13. + if (disable_hidden_)
  14. + return;
  15. +
  16. RejectMouseLockOrUnlockIfNecessary(
  17. blink::mojom::PointerLockResult::kWrongDocument);
  18. diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
  19. index 013b2165038f1f21df394a0742f7927f26ab1671..894ddaa62fe8aa24eccbe7f9885a4dbb8db04206 100644
  20. --- a/content/browser/renderer_host/render_widget_host_impl.h
  21. +++ b/content/browser/renderer_host/render_widget_host_impl.h
  22. @@ -179,6 +179,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
  23. // RenderWidgetHostImpl.
  24. static RenderWidgetHostImpl* From(RenderWidgetHost* rwh);
  25. + // Electron: Prevents the widget from getting hidden.
  26. + bool disable_hidden_ = false;
  27. +
  28. void set_new_content_rendering_delay_for_testing(
  29. const base::TimeDelta& delay) {
  30. new_content_rendering_delay_ = delay;
  31. diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
  32. index f7f9dafb97983d05b3d13af3c178aa2f392b09ef..b43d1e528acaa4f0ead02c13d13a072216e2638c 100644
  33. --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
  34. +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
  35. @@ -692,7 +692,7 @@ void RenderWidgetHostViewAura::HideImpl() {
  36. DCHECK(visibility_ == Visibility::HIDDEN ||
  37. visibility_ == Visibility::OCCLUDED);
  38. - if (!host()->is_hidden()) {
  39. + if (!host()->is_hidden() && !host()->disable_hidden_) {
  40. host()->WasHidden();
  41. aura::WindowTreeHost* host = window_->GetHost();
  42. if (delegated_frame_host_) {