| Index: content/renderer/render_thread_impl.cc
|
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
|
| index f1a704e0bc0deba9d882f8f9290f505f8b116833..bf4a8b025bd02a914dbcdb1b78a9af46bab6fc5e 100644
|
| --- a/content/renderer/render_thread_impl.cc
|
| +++ b/content/renderer/render_thread_impl.cc
|
| @@ -82,7 +82,6 @@
|
| #include "content/renderer/media/video_capture_impl_manager.h"
|
| #include "content/renderer/media/video_capture_message_filter.h"
|
| #include "content/renderer/media/webrtc_identity_service.h"
|
| -#include "content/renderer/mojo/mojo_render_process_observer.h"
|
| #include "content/renderer/p2p/socket_dispatcher.h"
|
| #include "content/renderer/render_process_impl.h"
|
| #include "content/renderer/render_view_impl.h"
|
| @@ -90,6 +89,7 @@
|
| #include "content/renderer/service_worker/embedded_worker_context_message_filter.h"
|
| #include "content/renderer/service_worker/embedded_worker_dispatcher.h"
|
| #include "content/renderer/shared_worker/embedded_shared_worker_stub.h"
|
| +#include "content/renderer/web_ui_mojo.h"
|
| #include "grit/content_resources.h"
|
| #include "ipc/ipc_channel_handle.h"
|
| #include "ipc/ipc_forwarding_message_filter.h"
|
| @@ -310,12 +310,14 @@ RenderThreadImpl* RenderThreadImpl::current() {
|
|
|
| // When we run plugins in process, we actually run them on the render thread,
|
| // which means that we need to make the render thread pump UI events.
|
| -RenderThreadImpl::RenderThreadImpl() {
|
| +RenderThreadImpl::RenderThreadImpl()
|
| + : mojo_application_(this) {
|
| Init();
|
| }
|
|
|
| RenderThreadImpl::RenderThreadImpl(const std::string& channel_name)
|
| - : ChildThread(channel_name) {
|
| + : ChildThread(channel_name),
|
| + mojo_application_(this) {
|
| Init();
|
| }
|
|
|
| @@ -394,9 +396,6 @@ void RenderThreadImpl::Init() {
|
|
|
| AddFilter((new EmbeddedWorkerContextMessageFilter())->GetFilter());
|
|
|
| - // MojoRenderProcessObserver deletes itself as necessary.
|
| - new MojoRenderProcessObserver(this);
|
| -
|
| GetContentClient()->renderer()->RenderThreadStarted();
|
|
|
| InitSkiaEventTracer();
|
| @@ -1202,6 +1201,28 @@ scoped_ptr<gfx::GpuMemoryBuffer> RenderThreadImpl::AllocateGpuMemoryBuffer(
|
| internalformat).PassAs<gfx::GpuMemoryBuffer>();
|
| }
|
|
|
| +void RenderThreadImpl::AcceptConnection(
|
| + const mojo::String& url,
|
| + mojo::ScopedMessagePipeHandle message_pipe) {
|
| + // TODO(darin): Figure out what URL to use for the RenderProcess service.
|
| + if (url.To<std::string>() == "content:render_process") {
|
| + render_process_host_.reset(
|
| + ScopedIRenderProcessHostHandle::From(message_pipe.Pass()), this);
|
| + }
|
| +}
|
| +
|
| +void RenderThreadImpl::SetWebUIHandle(
|
| + int32 view_routing_id,
|
| + mojo::ScopedMessagePipeHandle web_ui_handle) {
|
| + RenderView* render_view = RenderView::FromRoutingID(view_routing_id);
|
| + if (!render_view)
|
| + return;
|
| + WebUIMojo* web_ui_mojo = WebUIMojo::Get(render_view);
|
| + if (!web_ui_mojo)
|
| + return;
|
| + web_ui_mojo->SetBrowserHandle(web_ui_handle.Pass());
|
| +}
|
| +
|
| void RenderThreadImpl::DoNotSuspendWebKitSharedTimer() {
|
| suspend_webkit_shared_timer_ = false;
|
| }
|
| @@ -1226,7 +1247,8 @@ bool RenderThreadImpl::OnControlMessageReceived(const IPC::Message& msg) {
|
| }
|
|
|
| // Some messages are handled by delegates.
|
| - if (appcache_dispatcher_->OnMessageReceived(msg) ||
|
| + if (mojo_application_.OnMessageReceived(msg) ||
|
| + appcache_dispatcher_->OnMessageReceived(msg) ||
|
| dom_storage_dispatcher_->OnMessageReceived(msg) ||
|
| embedded_worker_dispatcher_->OnMessageReceived(msg)) {
|
| return true;
|
|
|