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 // Represents the browser side of the browser <--> renderer communication | 5 // Represents the browser side of the browser <--> renderer communication |
6 // channel. There will be one RenderProcessHost per renderer process. | 6 // channel. There will be one RenderProcessHost per renderer process. |
7 | 7 |
8 #include "content/browser/renderer_host/render_process_host_impl.h" | 8 #include "content/browser/renderer_host/render_process_host_impl.h" |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 const std::string& channel_id) { | 668 const std::string& channel_id) { |
669 scoped_refptr<base::SingleThreadTaskRunner> runner = | 669 scoped_refptr<base::SingleThreadTaskRunner> runner = |
670 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO); | 670 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO); |
671 if (ShouldUseMojoChannel()) { | 671 if (ShouldUseMojoChannel()) { |
672 VLOG(1) << "Mojo Channel is enabled on host"; | 672 VLOG(1) << "Mojo Channel is enabled on host"; |
673 if (!channel_mojo_host_) { | 673 if (!channel_mojo_host_) { |
674 channel_mojo_host_.reset(new IPC::ChannelMojoHost( | 674 channel_mojo_host_.reset(new IPC::ChannelMojoHost( |
675 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO))); | 675 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO))); |
676 } | 676 } |
677 | 677 |
678 return IPC::ChannelProxy::Create(IPC::ChannelMojo::CreateServerFactory( | 678 return IPC::ChannelProxy::Create( |
679 channel_mojo_host_.get(), channel_id), | 679 IPC::ChannelMojo::CreateServerFactory( |
680 this, | 680 channel_mojo_host_->channel_delegate(), channel_id), |
681 runner.get()); | 681 this, |
| 682 runner.get()); |
682 } | 683 } |
683 | 684 |
684 return IPC::ChannelProxy::Create( | 685 return IPC::ChannelProxy::Create( |
685 channel_id, IPC::Channel::MODE_SERVER, this, runner.get()); | 686 channel_id, IPC::Channel::MODE_SERVER, this, runner.get()); |
686 } | 687 } |
687 | 688 |
688 void RenderProcessHostImpl::CreateMessageFilters() { | 689 void RenderProcessHostImpl::CreateMessageFilters() { |
689 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 690 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
690 AddFilter(new ResourceSchedulerFilter(GetID())); | 691 AddFilter(new ResourceSchedulerFilter(GetID())); |
691 MediaInternals* media_internals = MediaInternals::GetInstance(); | 692 MediaInternals* media_internals = MediaInternals::GetInstance(); |
(...skipping 1406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2098 NOTIFICATION_RENDERER_PROCESS_CREATED, | 2099 NOTIFICATION_RENDERER_PROCESS_CREATED, |
2099 Source<RenderProcessHost>(this), | 2100 Source<RenderProcessHost>(this), |
2100 NotificationService::NoDetails()); | 2101 NotificationService::NoDetails()); |
2101 | 2102 |
2102 // Allow Mojo to be setup before the renderer sees any Chrome IPC messages. | 2103 // Allow Mojo to be setup before the renderer sees any Chrome IPC messages. |
2103 // This way, Mojo can be safely used from the renderer in response to any | 2104 // This way, Mojo can be safely used from the renderer in response to any |
2104 // Chrome IPC message. | 2105 // Chrome IPC message. |
2105 MaybeActivateMojo(); | 2106 MaybeActivateMojo(); |
2106 | 2107 |
2107 if (channel_mojo_host_) | 2108 if (channel_mojo_host_) |
2108 channel_mojo_host_->OnClientLaunched(child_process_launcher_->GetHandle()); | 2109 channel_mojo_host_->OnClientLaunched(GetHandle()); |
2109 | 2110 |
2110 while (!queued_messages_.empty()) { | 2111 while (!queued_messages_.empty()) { |
2111 Send(queued_messages_.front()); | 2112 Send(queued_messages_.front()); |
2112 queued_messages_.pop(); | 2113 queued_messages_.pop(); |
2113 } | 2114 } |
2114 | 2115 |
2115 #if defined(ENABLE_WEBRTC) | 2116 #if defined(ENABLE_WEBRTC) |
2116 if (WebRTCInternals::GetInstance()->aec_dump_enabled()) | 2117 if (WebRTCInternals::GetInstance()->aec_dump_enabled()) |
2117 EnableAecDump(WebRTCInternals::GetInstance()->aec_dump_file_path()); | 2118 EnableAecDump(WebRTCInternals::GetInstance()->aec_dump_file_path()); |
2118 #endif | 2119 #endif |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2245 if (worker_ref_count_ == 0) | 2246 if (worker_ref_count_ == 0) |
2246 Cleanup(); | 2247 Cleanup(); |
2247 } | 2248 } |
2248 | 2249 |
2249 void RenderProcessHostImpl::EnsureMojoActivated() { | 2250 void RenderProcessHostImpl::EnsureMojoActivated() { |
2250 mojo_activation_required_ = true; | 2251 mojo_activation_required_ = true; |
2251 MaybeActivateMojo(); | 2252 MaybeActivateMojo(); |
2252 } | 2253 } |
2253 | 2254 |
2254 } // namespace content | 2255 } // namespace content |
OLD | NEW |