Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 2387603003: Resume a backgrounded renderer that was purged and suspended (Closed)
Patch Set: Use constexpr base::TimeDelta Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <utility> 10 #include <utility>
(...skipping 1756 matching lines...) Expand 10 before | Expand all | Expand 10 after
1767 1767
1768 void RenderThreadImpl::OnProcessPurgeAndSuspend() { 1768 void RenderThreadImpl::OnProcessPurgeAndSuspend() {
1769 ChildThreadImpl::OnProcessPurgeAndSuspend(); 1769 ChildThreadImpl::OnProcessPurgeAndSuspend();
1770 if (is_renderer_suspended_) 1770 if (is_renderer_suspended_)
1771 return; 1771 return;
1772 // TODO(hajimehoshi): Implement purging e.g. cache (crbug/607077) 1772 // TODO(hajimehoshi): Implement purging e.g. cache (crbug/607077)
1773 is_renderer_suspended_ = true; 1773 is_renderer_suspended_ = true;
1774 renderer_scheduler_->SuspendRenderer(); 1774 renderer_scheduler_->SuspendRenderer();
1775 } 1775 }
1776 1776
1777 void RenderThreadImpl::OnProcessResume() {
1778 ChildThreadImpl::OnProcessResume();
1779 if (!is_renderer_suspended_)
1780 return;
1781
1782 is_renderer_suspended_ = false;
1783 renderer_scheduler_->ResumeRenderer();
1784 }
1785
1777 scoped_refptr<gpu::GpuChannelHost> RenderThreadImpl::EstablishGpuChannelSync() { 1786 scoped_refptr<gpu::GpuChannelHost> RenderThreadImpl::EstablishGpuChannelSync() {
1778 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); 1787 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync");
1779 1788
1780 if (gpu_channel_) { 1789 if (gpu_channel_) {
1781 // Do nothing if we already have a GPU channel or are already 1790 // Do nothing if we already have a GPU channel or are already
1782 // establishing one. 1791 // establishing one.
1783 if (!gpu_channel_->IsLost()) 1792 if (!gpu_channel_->IsLost())
1784 return gpu_channel_; 1793 return gpu_channel_;
1785 1794
1786 // Recreate the channel if it has been lost. 1795 // Recreate the channel if it has been lost.
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
2329 } 2338 }
2330 } 2339 }
2331 2340
2332 void RenderThreadImpl::OnRendererInterfaceRequest( 2341 void RenderThreadImpl::OnRendererInterfaceRequest(
2333 mojom::RendererAssociatedRequest request) { 2342 mojom::RendererAssociatedRequest request) {
2334 DCHECK(!renderer_binding_.is_bound()); 2343 DCHECK(!renderer_binding_.is_bound());
2335 renderer_binding_.Bind(std::move(request)); 2344 renderer_binding_.Bind(std::move(request));
2336 } 2345 }
2337 2346
2338 } // namespace content 2347 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698