diff options
author | rockot <rockot@chromium.org> | 2015-11-20 09:56:54 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-20 17:57:40 +0000 |
commit | ac2a36e6cdb4739bcba077ac90950831c49b3e15 (patch) | |
tree | ad33d50b293fc8bf4a566927c33ea85da0047df3 /content/renderer/mojo/service_registry_js_wrapper.cc | |
parent | 11ca741bbbe85f9e1ba4486af77cd050f914959f (diff) | |
download | chromium_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.cc | 11 |
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(); } |