| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/renderer/render_thread.h" | 5 #include "chrome/renderer/render_thread.h" |
| 6 | 6 |
| 7 #include <v8.h> | 7 #include <v8.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <limits> | 10 #include <limits> |
| (...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 680 return; | 680 return; |
| 681 | 681 |
| 682 std::set<std::string> active_extensions; | 682 std::set<std::string> active_extensions; |
| 683 user_script_slave_->GetActiveExtensions(&active_extensions); | 683 user_script_slave_->GetActiveExtensions(&active_extensions); |
| 684 ExtensionProcessBindings::GetActiveExtensions(&active_extensions); | 684 ExtensionProcessBindings::GetActiveExtensions(&active_extensions); |
| 685 child_process_logging::SetActiveExtensions(active_extensions); | 685 child_process_logging::SetActiveExtensions(active_extensions); |
| 686 } | 686 } |
| 687 | 687 |
| 688 void RenderThread::EstablishGpuChannel() { | 688 void RenderThread::EstablishGpuChannel() { |
| 689 if (gpu_channel_.get()) { | 689 if (gpu_channel_.get()) { |
| 690 // Do nothing if we are already establishing GPU channel. | 690 // Do nothing if we already have a GPU channel or are already |
| 691 if (gpu_channel_->state() == GpuChannelHost::UNCONNECTED) | 691 // establishing one. |
| 692 if (gpu_channel_->state() == GpuChannelHost::UNCONNECTED || |
| 693 gpu_channel_->state() == GpuChannelHost::CONNECTED) |
| 692 return; | 694 return; |
| 693 | 695 |
| 694 // Recreate the channel if it has been lost. | 696 // Recreate the channel if it has been lost. |
| 695 if (gpu_channel_->state() == GpuChannelHost::LOST) | 697 if (gpu_channel_->state() == GpuChannelHost::LOST) |
| 696 gpu_channel_ = NULL; | 698 gpu_channel_ = NULL; |
| 697 } | 699 } |
| 698 | 700 |
| 699 if (!gpu_channel_.get()) | 701 if (!gpu_channel_.get()) |
| 700 gpu_channel_ = new GpuChannelHost; | 702 gpu_channel_ = new GpuChannelHost; |
| 701 | 703 |
| 702 // Ask the browser for the channel name. | 704 // Ask the browser for the channel name. |
| 703 Send(new ViewHostMsg_EstablishGpuChannel()); | 705 Send(new ViewHostMsg_EstablishGpuChannel()); |
| 704 } | 706 } |
| 705 | 707 |
| 706 GpuChannelHost* RenderThread::EstablishGpuChannelSync() { | 708 GpuChannelHost* RenderThread::EstablishGpuChannelSync() { |
| 707 EstablishGpuChannel(); | 709 // We may need to retry the connection establishment if an existing |
| 708 Send(new ViewHostMsg_SynchronizeGpu()); | 710 // connection has gone bad, which will not be detected in |
| 711 // EstablishGpuChannel since we do not send duplicate |
| 712 // ViewHostMsg_EstablishGpuChannel messages -- doing so breaks the |
| 713 // preexisting connection in bad ways. |
| 714 bool retry = true; |
| 715 for (int i = 0; i < 2 && retry; ++i) { |
| 716 EstablishGpuChannel(); |
| 717 retry = !Send(new ViewHostMsg_SynchronizeGpu()); |
| 718 } |
| 709 // TODO(kbr): the GPU channel is still in the unconnected state at this point. | 719 // TODO(kbr): the GPU channel is still in the unconnected state at this point. |
| 710 // Need to figure out whether it is really safe to return it. | 720 // Need to figure out whether it is really safe to return it. |
| 711 return gpu_channel_.get(); | 721 return gpu_channel_.get(); |
| 712 } | 722 } |
| 713 | 723 |
| 714 GpuChannelHost* RenderThread::GetGpuChannel() { | 724 GpuChannelHost* RenderThread::GetGpuChannel() { |
| 715 if (!gpu_channel_.get()) | 725 if (!gpu_channel_.get()) |
| 716 return NULL; | 726 return NULL; |
| 717 | 727 |
| 718 if (gpu_channel_->state() != GpuChannelHost::CONNECTED) | 728 if (gpu_channel_->state() != GpuChannelHost::CONNECTED) |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 991 #endif | 1001 #endif |
| 992 | 1002 |
| 993 if (channel_handle.name.size() != 0) { | 1003 if (channel_handle.name.size() != 0) { |
| 994 // Connect to the GPU process if a channel name was received. | 1004 // Connect to the GPU process if a channel name was received. |
| 995 gpu_channel_->Connect(channel_handle.name); | 1005 gpu_channel_->Connect(channel_handle.name); |
| 996 } else { | 1006 } else { |
| 997 // Otherwise cancel the connection. | 1007 // Otherwise cancel the connection. |
| 998 gpu_channel_ = NULL; | 1008 gpu_channel_ = NULL; |
| 999 } | 1009 } |
| 1000 } | 1010 } |
| OLD | NEW |