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

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 1488853002: Add multiplexing of message pipes in the new EDK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tsepez review comments Created 5 years 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
« no previous file with comments | « content/browser/browser_child_process_host_impl.cc ('k') | content/child/child_thread_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 2461 matching lines...) Expand 10 before | Expand all | Expand 10 after
2472 // happens. 2472 // happens.
2473 NotificationService::current()->Notify(NOTIFICATION_RENDERER_PROCESS_CREATED, 2473 NotificationService::current()->Notify(NOTIFICATION_RENDERER_PROCESS_CREATED,
2474 Source<RenderProcessHost>(this), 2474 Source<RenderProcessHost>(this),
2475 NotificationService::NoDetails()); 2475 NotificationService::NoDetails());
2476 2476
2477 #if defined(MOJO_SHELL_CLIENT) 2477 #if defined(MOJO_SHELL_CLIENT)
2478 // Send the mojo shell handle to the renderer. 2478 // Send the mojo shell handle to the renderer.
2479 SendExternalMojoShellHandleToChild(GetHandle(), this); 2479 SendExternalMojoShellHandleToChild(GetHandle(), this);
2480 #endif 2480 #endif
2481 2481
2482 #if defined(OS_WIN)
2483 // TODO(jam): enable on POSIX
2484 if (base::CommandLine::ForCurrentProcess()->HasSwitch("use-new-edk") && 2482 if (base::CommandLine::ForCurrentProcess()->HasSwitch("use-new-edk") &&
2485 child_process_launcher_.get()) { 2483 child_process_launcher_.get()) {
2486 base::ProcessHandle process_handle = 2484 base::ProcessHandle process_handle =
2487 child_process_launcher_->GetProcess().Handle(); 2485 child_process_launcher_->GetProcess().Handle();
2488 mojo::embedder::ScopedPlatformHandle client_pipe = 2486 mojo::embedder::ScopedPlatformHandle client_pipe =
2489 mojo::embedder::ChildProcessLaunched(process_handle); 2487 mojo::embedder::ChildProcessLaunched(process_handle);
2490 Send(new ChildProcessMsg_SetMojoParentPipeHandle( 2488 Send(new ChildProcessMsg_SetMojoParentPipeHandle(
2491 IPC::GetFileHandleForProcess( 2489 IPC::GetFileHandleForProcess(
2492 #if defined(OS_WIN) 2490 #if defined(OS_WIN)
2493 client_pipe.release().handle, 2491 client_pipe.release().handle,
2494 #else 2492 #else
2495 client_pipe.release().fd, 2493 client_pipe.release().fd,
2496 #endif 2494 #endif
2497 process_handle, true))); 2495 process_handle, true)));
2498 } 2496 }
2499 #endif
2500 2497
2501 // Allow Mojo to be setup before the renderer sees any Chrome IPC messages. 2498 // Allow Mojo to be setup before the renderer sees any Chrome IPC messages.
2502 // This way, Mojo can be safely used from the renderer in response to any 2499 // This way, Mojo can be safely used from the renderer in response to any
2503 // Chrome IPC message. 2500 // Chrome IPC message.
2504 mojo_application_host_->Activate(this, GetHandle()); 2501 mojo_application_host_->Activate(this, GetHandle());
2505 2502
2506 while (!queued_messages_.empty()) { 2503 while (!queued_messages_.empty()) {
2507 Send(queued_messages_.front()); 2504 Send(queued_messages_.front());
2508 queued_messages_.pop(); 2505 queued_messages_.pop();
2509 } 2506 }
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
2663 void RenderProcessHostImpl::GetAudioOutputControllers( 2660 void RenderProcessHostImpl::GetAudioOutputControllers(
2664 const GetAudioOutputControllersCallback& callback) const { 2661 const GetAudioOutputControllersCallback& callback) const {
2665 audio_renderer_host()->GetOutputControllers(callback); 2662 audio_renderer_host()->GetOutputControllers(callback);
2666 } 2663 }
2667 2664
2668 BluetoothDispatcherHost* RenderProcessHostImpl::GetBluetoothDispatcherHost() { 2665 BluetoothDispatcherHost* RenderProcessHostImpl::GetBluetoothDispatcherHost() {
2669 return bluetooth_dispatcher_host_.get(); 2666 return bluetooth_dispatcher_host_.get();
2670 } 2667 }
2671 2668
2672 } // namespace content 2669 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/browser_child_process_host_impl.cc ('k') | content/child/child_thread_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698