summaryrefslogtreecommitdiffstats
path: root/content/renderer/mojo/service_registry_js_wrapper.cc
diff options
context:
space:
mode:
authorrockot <rockot@chromium.org>2015-11-20 09:56:54 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-20 17:57:40 +0000
commitac2a36e6cdb4739bcba077ac90950831c49b3e15 (patch)
treead33d50b293fc8bf4a566927c33ea85da0047df3 /content/renderer/mojo/service_registry_js_wrapper.cc
parent11ca741bbbe85f9e1ba4486af77cd050f914959f (diff)
downloadchromium_src-ac2a36e6cdb4739bcba077ac90950831c49b3e15.zip
chromium_src-ac2a36e6cdb4739bcba077ac90950831c49b3e15.tar.gz
chromium_src-ac2a36e6cdb4739bcba077ac90950831c49b3e15.tar.bz2
Share a single ServiceRegistry for all render frames in a process.
This changes ServiceRegistryImpl to implement a new content::RoutedServiceProvider mojom interface which supports normal ConnectToService as well as a ConnectToServiceRouted operation which takes a route ID for additional context. The new ConnectToServiceRouted API is then used to share ChildThreadImpl/RenderProcessHost's ServiceRegistry with each RenderFrameImpl/RenderFrameHostImpl for that process. BUG=557909 Review URL: https://codereview.chromium.org/1460803003 Cr-Commit-Position: refs/heads/master@{#360857}
Diffstat (limited to 'content/renderer/mojo/service_registry_js_wrapper.cc')
-rw-r--r--content/renderer/mojo/service_registry_js_wrapper.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/content/renderer/mojo/service_registry_js_wrapper.cc b/content/renderer/mojo/service_registry_js_wrapper.cc
index 4840b1e..19c2bd7 100644
--- a/content/renderer/mojo/service_registry_js_wrapper.cc
+++ b/content/renderer/mojo/service_registry_js_wrapper.cc
@@ -4,6 +4,8 @@
#include "content/renderer/mojo/service_registry_js_wrapper.h"
+#include <utility>
+
#include "content/common/mojo/service_registry_impl.h"
#include "content/public/common/service_registry.h"
#include "third_party/mojo/src/mojo/edk/js/handle.h"
@@ -21,11 +23,9 @@ ServiceRegistryJsWrapper::~ServiceRegistryJsWrapper() {
// static
gin::Handle<ServiceRegistryJsWrapper> ServiceRegistryJsWrapper::Create(
v8::Isolate* isolate,
- ServiceRegistry* service_registry) {
+ base::WeakPtr<ServiceRegistry> service_registry) {
return gin::CreateHandle(
- isolate,
- new ServiceRegistryJsWrapper(
- static_cast<ServiceRegistryImpl*>(service_registry)->GetWeakPtr()));
+ isolate, new ServiceRegistryJsWrapper(service_registry));
}
gin::ObjectTemplateBuilder ServiceRegistryJsWrapper::GetObjectTemplateBuilder(
@@ -39,8 +39,7 @@ mojo::Handle ServiceRegistryJsWrapper::ConnectToService(
const std::string& service_name) {
mojo::MessagePipe pipe;
if (service_registry_)
- service_registry_->ConnectToRemoteService(service_name,
- pipe.handle0.Pass());
+ service_registry_->Connect(service_name, std::move(pipe.handle0));
return pipe.handle1.release();
}