| Index: content/browser/renderer_host/render_process_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
|
| index 04691f308db4521eb89c26dc6728de7b23bf0a08..16a9876ed9d3374998f1d40bb95504291872ae5c 100644
|
| --- a/content/browser/renderer_host/render_process_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_process_host_impl.cc
|
| @@ -138,6 +138,7 @@
|
| #include "media/base/media_switches.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
| #include "ppapi/shared_impl/ppapi_switches.h"
|
| +#include "third_party/skia/include/core/SkBitmap.h"
|
| #include "ui/base/ui_base_switches.h"
|
| #include "ui/events/event_switches.h"
|
| #include "ui/gfx/switches.h"
|
| @@ -158,7 +159,12 @@
|
| #include "content/common/media/media_stream_messages.h"
|
| #endif
|
|
|
| -#include "third_party/skia/include/core/SkBitmap.h"
|
| +// TODO(sky): remove, see header for details.
|
| +#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
| +#include "content/common/mojo/mojo_channel_init.h"
|
| +#include "content/common/mojo/mojo_messages.h"
|
| +#include "mojo/system/embedder/platform_channel_pair.h"
|
| +#endif
|
|
|
| extern bool g_exited_main_message_loop;
|
|
|
| @@ -325,6 +331,18 @@ class RendererSandboxedProcessLauncherDelegate
|
| #endif // OS_POSIX
|
| };
|
|
|
| +// TODO(sky): remove, see header for details.
|
| +#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
| +base::PlatformFile PlatformFileFromScopedPlatformHandle(
|
| + mojo::embedder::ScopedPlatformHandle handle) {
|
| +#if defined(OS_POSIX)
|
| + return handle.release().fd;
|
| +#elif defined(OS_WIN)
|
| + return handle.release().handle;
|
| +#endif
|
| +}
|
| +#endif
|
| +
|
| } // namespace
|
|
|
| RendererMainThreadFactoryFunction g_renderer_main_thread_factory = NULL;
|
| @@ -422,9 +440,9 @@ RenderProcessHostImpl::RenderProcessHostImpl(
|
| within_process_died_observer_(false),
|
| power_monitor_broadcaster_(this),
|
| geolocation_dispatcher_host_(NULL),
|
| - weak_factory_(this),
|
| screen_orientation_dispatcher_host_(NULL),
|
| - worker_ref_count_(0) {
|
| + worker_ref_count_(0),
|
| + weak_factory_(this) {
|
| widget_helper_ = new RenderWidgetHelper();
|
|
|
| ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID());
|
| @@ -2133,4 +2151,27 @@ void RenderProcessHostImpl::DecrementWorkerRefCount() {
|
| Cleanup();
|
| }
|
|
|
| +void RenderProcessHostImpl::CreateMojoChannel() {
|
| +// TODO(sky): remove, see header for details.
|
| +#if !defined(OS_MACOSX) && !defined(OS_ANDROID)
|
| + if (mojo_channel_init_.get())
|
| + return;
|
| +
|
| + mojo::embedder::PlatformChannelPair channel_pair;
|
| + mojo_channel_init_.reset(new MojoChannelInit);
|
| + mojo_channel_init_->Init(
|
| + PlatformFileFromScopedPlatformHandle(channel_pair.PassServerHandle()),
|
| + BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO));
|
| + if (mojo_channel_init_->is_handle_valid()) {
|
| + base::ProcessHandle process_handle = run_renderer_in_process() ?
|
| + base::Process::Current().handle() :
|
| + child_process_launcher_->GetHandle();
|
| + base::PlatformFile client_file =
|
| + PlatformFileFromScopedPlatformHandle(channel_pair.PassClientHandle());
|
| + Send(new MojoMsg_ChannelCreated(
|
| + IPC::GetFileHandleForProcess(client_file, process_handle, true)));
|
| + }
|
| +#endif
|
| +}
|
| +
|
| } // namespace content
|
|
|