OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdio.h> | 5 #include <stdio.h> |
6 | 6 |
7 #include "mojo/service_manager/service_manager.h" | 7 #include "mojo/service_manager/service_manager.h" |
8 | 8 |
9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 void ServiceManager::ConnectToApplication(const GURL& url, | 110 void ServiceManager::ConnectToApplication(const GURL& url, |
111 const GURL& requestor_url, | 111 const GURL& requestor_url, |
112 ServiceProviderPtr service_provider) { | 112 ServiceProviderPtr service_provider) { |
113 URLToShellImplMap::const_iterator shell_it = url_to_shell_impl_.find(url); | 113 URLToShellImplMap::const_iterator shell_it = url_to_shell_impl_.find(url); |
114 ShellImpl* shell_impl; | 114 ShellImpl* shell_impl; |
115 if (shell_it != url_to_shell_impl_.end()) { | 115 if (shell_it != url_to_shell_impl_.end()) { |
116 shell_impl = shell_it->second; | 116 shell_impl = shell_it->second; |
117 } else { | 117 } else { |
118 MessagePipe pipe; | 118 MessagePipe pipe; |
119 GetLoaderForURL(url)->LoadService(this, url, pipe.handle0.Pass()); | 119 GetLoaderForURL(url)->LoadService(this, url, pipe.handle0.Pass()); |
120 shell_impl = BindToPipe(new ShellImpl(this, url), pipe.handle1.Pass()); | 120 shell_impl = WeakBindToPipe(new ShellImpl(this, url), pipe.handle1.Pass()); |
121 url_to_shell_impl_[url] = shell_impl; | 121 url_to_shell_impl_[url] = shell_impl; |
122 } | 122 } |
123 if (interceptor_) { | 123 if (interceptor_) { |
124 shell_impl->ConnectToClient( | 124 shell_impl->ConnectToClient( |
125 requestor_url, | 125 requestor_url, |
126 interceptor_->OnConnectToClient(url, service_provider.Pass())); | 126 interceptor_->OnConnectToClient(url, service_provider.Pass())); |
127 } else { | 127 } else { |
128 shell_impl->ConnectToClient(requestor_url, service_provider.Pass()); | 128 shell_impl->ConnectToClient(requestor_url, service_provider.Pass()); |
129 } | 129 } |
130 } | 130 } |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 StubServiceProvider* stub_sp = new StubServiceProvider; | 179 StubServiceProvider* stub_sp = new StubServiceProvider; |
180 ServiceProviderPtr spp; | 180 ServiceProviderPtr spp; |
181 BindToProxy(stub_sp, &spp); | 181 BindToProxy(stub_sp, &spp); |
182 ConnectToApplication(application_url, GURL(), spp.Pass()); | 182 ConnectToApplication(application_url, GURL(), spp.Pass()); |
183 MessagePipe pipe; | 183 MessagePipe pipe; |
184 stub_sp->GetRemoteServiceProvider()->ConnectToService( | 184 stub_sp->GetRemoteServiceProvider()->ConnectToService( |
185 interface_name, pipe.handle1.Pass()); | 185 interface_name, pipe.handle1.Pass()); |
186 return pipe.handle0.Pass(); | 186 return pipe.handle0.Pass(); |
187 } | 187 } |
188 } // namespace mojo | 188 } // namespace mojo |
OLD | NEW |