Index: trunk/src/content/renderer/render_thread_impl.cc |
=================================================================== |
--- trunk/src/content/renderer/render_thread_impl.cc (revision 279559) |
+++ trunk/src/content/renderer/render_thread_impl.cc (working copy) |
@@ -51,7 +51,7 @@ |
#include "content/common/gpu/client/gpu_memory_buffer_impl.h" |
#include "content/common/gpu/gpu_messages.h" |
#include "content/common/gpu/gpu_process_launch_causes.h" |
-#include "content/common/render_frame_setup.mojom.h" |
+#include "content/common/mojo/mojo_service_names.h" |
#include "content/common/resource_messages.h" |
#include "content/common/view_messages.h" |
#include "content/common/worker_messages.h" |
@@ -95,6 +95,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_setup_impl.h" |
#include "grit/content_resources.h" |
#include "ipc/ipc_channel_handle.h" |
#include "ipc/ipc_forwarding_message_filter.h" |
@@ -265,31 +266,6 @@ |
v8::Date::DateTimeConfigurationChangeNotification(isolate); |
} |
-class RenderFrameSetupImpl : public mojo::InterfaceImpl<RenderFrameSetup> { |
- public: |
- virtual void GetServiceProviderForFrame( |
- int32_t frame_routing_id, |
- mojo::InterfaceRequest<mojo::IInterfaceProvider> request) OVERRIDE { |
- RenderFrameImpl* frame = RenderFrameImpl::FromRoutingID(frame_routing_id); |
- // We can receive a GetServiceProviderForFrame message for a frame not yet |
- // created due to a race between the message and a ViewMsg_New IPC that |
- // triggers creation of the RenderFrame we want. |
- if (!frame) { |
- RenderThreadImpl::current()->RegisterPendingRenderFrameConnect( |
- frame_routing_id, request.PassMessagePipe()); |
- return; |
- } |
- |
- frame->BindServiceRegistry(request.PassMessagePipe()); |
- } |
- |
- virtual void OnConnectionError() OVERRIDE { delete this; } |
-}; |
- |
-void CreateRenderFrameSetup(mojo::InterfaceRequest<RenderFrameSetup> request) { |
- mojo::BindToRequest(new RenderFrameSetupImpl(), &request); |
-} |
- |
} // namespace |
RenderThreadImpl::HistogramCustomizer::HistogramCustomizer() { |
@@ -532,19 +508,10 @@ |
} |
} |
- service_registry()->AddService<RenderFrameSetup>( |
- base::Bind(CreateRenderFrameSetup)); |
- |
TRACE_EVENT_END_ETW("RenderThreadImpl::Init", 0, ""); |
} |
RenderThreadImpl::~RenderThreadImpl() { |
- for (std::map<int, mojo::MessagePipeHandle>::iterator it = |
- pending_render_frame_connects_.begin(); |
- it != pending_render_frame_connects_.end(); |
- ++it) { |
- mojo::CloseRaw(it->second); |
- } |
} |
void RenderThreadImpl::Shutdown() { |
@@ -713,18 +680,6 @@ |
void RenderThreadImpl::AddRoute(int32 routing_id, IPC::Listener* listener) { |
ChildThread::GetRouter()->AddRoute(routing_id, listener); |
- std::map<int, mojo::MessagePipeHandle>::iterator it = |
- pending_render_frame_connects_.find(routing_id); |
- if (it == pending_render_frame_connects_.end()) |
- return; |
- |
- RenderFrameImpl* frame = RenderFrameImpl::FromRoutingID(routing_id); |
- if (!frame) |
- return; |
- |
- mojo::ScopedMessagePipeHandle handle(it->second); |
- pending_render_frame_connects_.erase(it); |
- frame->BindServiceRegistry(handle.Pass()); |
} |
void RenderThreadImpl::RemoveRoute(int32 routing_id) { |
@@ -748,15 +703,6 @@ |
} |
} |
-void RenderThreadImpl::RegisterPendingRenderFrameConnect( |
- int routing_id, |
- mojo::ScopedMessagePipeHandle handle) { |
- std::pair<std::map<int, mojo::MessagePipeHandle>::iterator, bool> result = |
- pending_render_frame_connects_.insert( |
- std::make_pair(routing_id, handle.release())); |
- CHECK(result.second) << "Inserting a duplicate item."; |
-} |
- |
int RenderThreadImpl::GenerateRoutingID() { |
int routing_id = MSG_ROUTING_NONE; |
Send(new ViewHostMsg_GenerateRoutingID(&routing_id)); |
@@ -1153,10 +1099,6 @@ |
#endif // OS_WIN |
-ServiceRegistry* RenderThreadImpl::GetServiceRegistry() { |
- return service_registry(); |
-} |
- |
bool RenderThreadImpl::IsMainThread() { |
return !!current(); |
} |
@@ -1237,6 +1179,19 @@ |
.PassAs<gfx::GpuMemoryBuffer>(); |
} |
+void RenderThreadImpl::ConnectToService( |
+ const mojo::String& service_url, |
+ const mojo::String& service_name, |
+ mojo::ScopedMessagePipeHandle message_pipe, |
+ const mojo::String& requestor_url) { |
+ // TODO(darin): Invent some kind of registration system to use here. |
+ if (service_url.To<base::StringPiece>() == kRendererService_WebUISetup) { |
+ WebUISetupImpl::Bind(message_pipe.Pass()); |
+ } else { |
+ NOTREACHED() << "Unknown service name"; |
+ } |
+} |
+ |
void RenderThreadImpl::DoNotSuspendWebKitSharedTimer() { |
suspend_webkit_shared_timer_ = false; |
} |