| OLD | NEW |
| 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 <vector> | 10 #include <vector> |
| (...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 embedded_worker_dispatcher_.reset(); | 783 embedded_worker_dispatcher_.reset(); |
| 784 | 784 |
| 785 // Ramp down IDB before we ramp down WebKit (and V8), since IDB classes might | 785 // Ramp down IDB before we ramp down WebKit (and V8), since IDB classes might |
| 786 // hold pointers to V8 objects (e.g., via pending requests). | 786 // hold pointers to V8 objects (e.g., via pending requests). |
| 787 main_thread_indexed_db_dispatcher_.reset(); | 787 main_thread_indexed_db_dispatcher_.reset(); |
| 788 | 788 |
| 789 main_thread_compositor_task_runner_ = NULL; | 789 main_thread_compositor_task_runner_ = NULL; |
| 790 | 790 |
| 791 // Context providers must be released prior to destroying the GPU channel. | 791 // Context providers must be released prior to destroying the GPU channel. |
| 792 gpu_va_context_provider_ = nullptr; | 792 gpu_va_context_provider_ = nullptr; |
| 793 shared_main_thread_contexts_ = nullptr; |
| 793 | 794 |
| 794 if (gpu_channel_.get()) | 795 if (gpu_channel_.get()) |
| 795 gpu_channel_->DestroyChannel(); | 796 gpu_channel_->DestroyChannel(); |
| 796 | 797 |
| 797 // TODO(port) | 798 // TODO(port) |
| 798 #if defined(OS_WIN) | 799 #if defined(OS_WIN) |
| 799 // Clean up plugin channels before this thread goes away. | 800 // Clean up plugin channels before this thread goes away. |
| 800 NPChannelBase::CleanupChannels(); | 801 NPChannelBase::CleanupChannels(); |
| 801 #endif | 802 #endif |
| 802 | 803 |
| (...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1598 CauseForGpuLaunch cause_for_gpu_launch) { | 1599 CauseForGpuLaunch cause_for_gpu_launch) { |
| 1599 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); | 1600 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); |
| 1600 | 1601 |
| 1601 if (gpu_channel_.get()) { | 1602 if (gpu_channel_.get()) { |
| 1602 // Do nothing if we already have a GPU channel or are already | 1603 // Do nothing if we already have a GPU channel or are already |
| 1603 // establishing one. | 1604 // establishing one. |
| 1604 if (!gpu_channel_->IsLost()) | 1605 if (!gpu_channel_->IsLost()) |
| 1605 return gpu_channel_.get(); | 1606 return gpu_channel_.get(); |
| 1606 | 1607 |
| 1607 // Recreate the channel if it has been lost. | 1608 // Recreate the channel if it has been lost. |
| 1609 gpu_channel_->DestroyChannel(); |
| 1608 gpu_channel_ = NULL; | 1610 gpu_channel_ = NULL; |
| 1609 } | 1611 } |
| 1610 | 1612 |
| 1611 // Ask the browser for the channel name. | 1613 // Ask the browser for the channel name. |
| 1612 int client_id = 0; | 1614 int client_id = 0; |
| 1613 IPC::ChannelHandle channel_handle; | 1615 IPC::ChannelHandle channel_handle; |
| 1614 gpu::GPUInfo gpu_info; | 1616 gpu::GPUInfo gpu_info; |
| 1615 if (!Send(new GpuHostMsg_EstablishGpuChannel(cause_for_gpu_launch, | 1617 if (!Send(new GpuHostMsg_EstablishGpuChannel(cause_for_gpu_launch, |
| 1616 &client_id, | 1618 &client_id, |
| 1617 &channel_handle, | 1619 &channel_handle, |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1899 } | 1901 } |
| 1900 | 1902 |
| 1901 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { | 1903 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { |
| 1902 size_t erased = | 1904 size_t erased = |
| 1903 RenderThreadImpl::current()->pending_render_frame_connects_.erase( | 1905 RenderThreadImpl::current()->pending_render_frame_connects_.erase( |
| 1904 routing_id_); | 1906 routing_id_); |
| 1905 DCHECK_EQ(1u, erased); | 1907 DCHECK_EQ(1u, erased); |
| 1906 } | 1908 } |
| 1907 | 1909 |
| 1908 } // namespace content | 1910 } // namespace content |
| OLD | NEW |