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 18133ca75853394e616c3a816c1eb74b7da23fd9..273750752cdef18ccd7d54b9b28c524375bb3e8d 100644
  8. --- a/content/browser/renderer_host/render_widget_host_impl.cc
  9. +++ b/content/browser/renderer_host/render_widget_host_impl.cc
  10. @@ -809,6 +809,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 65297e78ee11fb3e7f662408f65a263f9ae8c550..62d3bef655580b1bad1077de797cdadc04721f8e 100644
  20. --- a/content/browser/renderer_host/render_widget_host_impl.h
  21. +++ b/content/browser/renderer_host/render_widget_host_impl.h
  22. @@ -879,6 +879,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
  23. SiteInstanceGroup* GetSiteInstanceGroup();
  24. + // Electron: Prevents the widget from getting hidden.
  25. + bool disable_hidden_ = false;
  26. +
  27. protected:
  28. // |routing_id| must not be MSG_ROUTING_NONE.
  29. // If this object outlives |delegate|, DetachDelegate() must be called when
  30. diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
  31. index 870cdf73fd5eeab985fc43dc92d7919d18e4e622..04bfe1f1205b06a7e105f613014540fd72b17328 100644
  32. --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
  33. +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
  34. @@ -592,7 +592,7 @@ void RenderWidgetHostViewAura::HideImpl() {
  35. DCHECK(visibility_ == Visibility::HIDDEN ||
  36. visibility_ == Visibility::OCCLUDED);
  37. - if (!host()->is_hidden()) {
  38. + if (!host()->is_hidden() && !host()->disable_hidden_) {
  39. host()->WasHidden();
  40. aura::WindowTreeHost* host = window_->GetHost();
  41. aura::Window* parent = window_->parent();