| 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 void ServiceManager::ConnectToApplication(const GURL& url, | 108 void ServiceManager::ConnectToApplication(const GURL& url, |
| 109 const GURL& requestor_url, | 109 const GURL& requestor_url, |
| 110 ServiceProviderPtr service_provider) { | 110 ServiceProviderPtr service_provider) { |
| 111 URLToShellImplMap::const_iterator shell_it = url_to_shell_impl_.find(url); | 111 URLToShellImplMap::const_iterator shell_it = url_to_shell_impl_.find(url); |
| 112 ShellImpl* shell_impl; | 112 ShellImpl* shell_impl; |
| 113 if (shell_it != url_to_shell_impl_.end()) { | 113 if (shell_it != url_to_shell_impl_.end()) { |
| 114 shell_impl = shell_it->second; | 114 shell_impl = shell_it->second; |
| 115 } else { | 115 } else { |
| 116 MessagePipe pipe; | 116 MessagePipe pipe; |
| 117 GetLoaderForURL(url)->LoadService(this, url, pipe.handle0.Pass()); | 117 GetLoaderForURL(url)->LoadService(this, url, pipe.handle0.Pass()); |
| 118 shell_impl = BindToPipe(new ShellImpl(this, url), pipe.handle1.Pass()); | 118 shell_impl = WeakBindToPipe(new ShellImpl(this, url), pipe.handle1.Pass()); |
| 119 url_to_shell_impl_[url] = shell_impl; | 119 url_to_shell_impl_[url] = shell_impl; |
| 120 } | 120 } |
| 121 if (interceptor_) { | 121 if (interceptor_) { |
| 122 shell_impl->ConnectToClient( | 122 shell_impl->ConnectToClient( |
| 123 requestor_url, | 123 requestor_url, |
| 124 interceptor_->OnConnectToClient(url, service_provider.Pass())); | 124 interceptor_->OnConnectToClient(url, service_provider.Pass())); |
| 125 } else { | 125 } else { |
| 126 shell_impl->ConnectToClient(requestor_url, service_provider.Pass()); | 126 shell_impl->ConnectToClient(requestor_url, service_provider.Pass()); |
| 127 } | 127 } |
| 128 } | 128 } |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 StubServiceProvider* stub_sp = new StubServiceProvider; | 177 StubServiceProvider* stub_sp = new StubServiceProvider; |
| 178 ServiceProviderPtr spp; | 178 ServiceProviderPtr spp; |
| 179 BindToProxy(stub_sp, &spp); | 179 BindToProxy(stub_sp, &spp); |
| 180 ConnectToApplication(GURL(application_url), GURL(), spp.Pass()); | 180 ConnectToApplication(GURL(application_url), GURL(), spp.Pass()); |
| 181 MessagePipe pipe; | 181 MessagePipe pipe; |
| 182 stub_sp->GetRemoteServiceProvider()->ConnectToService( | 182 stub_sp->GetRemoteServiceProvider()->ConnectToService( |
| 183 interface_name, pipe.handle1.Pass()); | 183 interface_name, pipe.handle1.Pass()); |
| 184 return pipe.handle0.Pass(); | 184 return pipe.handle0.Pass(); |
| 185 } | 185 } |
| 186 } // namespace mojo | 186 } // namespace mojo |
| OLD | NEW |