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

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

Issue 2387603003: Resume a backgrounded renderer that was purged and suspended (Closed)
Patch Set: Rebaselined 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 1760 matching lines...) Expand 10 before | Expand all | Expand 10 after
1771 1771
1772 void RenderThreadImpl::OnProcessPurgeAndSuspend() { 1772 void RenderThreadImpl::OnProcessPurgeAndSuspend() {
1773 ChildThreadImpl::OnProcessPurgeAndSuspend(); 1773 ChildThreadImpl::OnProcessPurgeAndSuspend();
1774 if (is_renderer_suspended_) 1774 if (is_renderer_suspended_)
1775 return; 1775 return;
1776 // TODO(hajimehoshi): Implement purging e.g. cache (crbug/607077) 1776 // TODO(hajimehoshi): Implement purging e.g. cache (crbug/607077)
1777 is_renderer_suspended_ = true; 1777 is_renderer_suspended_ = true;
1778 renderer_scheduler_->SuspendRenderer(); 1778 renderer_scheduler_->SuspendRenderer();
1779 } 1779 }
1780 1780
1781 void RenderThreadImpl::OnProcessResume() {
1782 ChildThreadImpl::OnProcessResume();
1783 if (!is_renderer_suspended_)
1784 return;
1785
1786 is_renderer_suspended_ = false;
1787 renderer_scheduler_->ResumeRenderer();
1788 }
1789
1781 scoped_refptr<gpu::GpuChannelHost> RenderThreadImpl::EstablishGpuChannelSync() { 1790 scoped_refptr<gpu::GpuChannelHost> RenderThreadImpl::EstablishGpuChannelSync() {
1782 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); 1791 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync");
1783 1792
1784 if (gpu_channel_) { 1793 if (gpu_channel_) {
1785 // Do nothing if we already have a GPU channel or are already 1794 // Do nothing if we already have a GPU channel or are already
1786 // establishing one. 1795 // establishing one.
1787 if (!gpu_channel_->IsLost()) 1796 if (!gpu_channel_->IsLost())
1788 return gpu_channel_; 1797 return gpu_channel_;
1789 1798
1790 // Recreate the channel if it has been lost. 1799 // Recreate the channel if it has been lost.
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
2362 } 2371 }
2363 } 2372 }
2364 2373
2365 void RenderThreadImpl::OnRendererInterfaceRequest( 2374 void RenderThreadImpl::OnRendererInterfaceRequest(
2366 mojom::RendererAssociatedRequest request) { 2375 mojom::RendererAssociatedRequest request) {
2367 DCHECK(!renderer_binding_.is_bound()); 2376 DCHECK(!renderer_binding_.is_bound());
2368 renderer_binding_.Bind(std::move(request)); 2377 renderer_binding_.Bind(std::move(request));
2369 } 2378 }
2370 2379
2371 } // namespace content 2380 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698