| Index: mojo/application_manager/application_manager.cc
|
| diff --git a/mojo/application_manager/application_manager.cc b/mojo/application_manager/application_manager.cc
|
| index d375f5482a1f314d823abca91b84693be850442d..2d582160c63e0e687c0e482a16ed1ac77b9a8795 100644
|
| --- a/mojo/application_manager/application_manager.cc
|
| +++ b/mojo/application_manager/application_manager.cc
|
| @@ -52,12 +52,10 @@ class ApplicationManager::ContentHandlerConnection : public ErrorHandler {
|
| ContentHandlerConnection(ApplicationManager* manager,
|
| const GURL& content_handler_url)
|
| : manager_(manager), content_handler_url_(content_handler_url) {
|
| - ServiceProviderPtr service_provider;
|
| - StubServiceProvider* service_provider_impl =
|
| - BindToProxy(new StubServiceProvider, &service_provider);
|
| - manager->ConnectToApplication(
|
| - content_handler_url, GURL(), service_provider.Pass());
|
| - mojo::ConnectToService(service_provider_impl->client(), &content_handler_);
|
| + ServiceProviderPtr services;
|
| + manager->ConnectToApplication(content_handler_url, GURL(),
|
| + GetProxy(&services), nullptr);
|
| + mojo::ConnectToService(services.get(), &content_handler_);
|
| content_handler_.set_error_handler(this);
|
| }
|
|
|
| @@ -112,13 +110,14 @@ void ApplicationManager::TerminateShellConnections() {
|
| void ApplicationManager::ConnectToApplication(
|
| const GURL& requested_url,
|
| const GURL& requestor_url,
|
| - ServiceProviderPtr service_provider) {
|
| + InterfaceRequest<ServiceProvider> services,
|
| + ServiceProviderPtr exposed_services) {
|
| DCHECK(requested_url.is_valid());
|
| ApplicationLoader* loader = GetLoaderForURL(requested_url,
|
| DONT_INCLUDE_DEFAULT_LOADER);
|
| if (loader) {
|
| ConnectToApplicationImpl(requested_url, requested_url, requestor_url,
|
| - service_provider.Pass(), loader);
|
| + services.Pass(), exposed_services.Pass(), loader);
|
| return;
|
| }
|
|
|
| @@ -126,7 +125,7 @@ void ApplicationManager::ConnectToApplication(
|
| loader = GetLoaderForURL(resolved_url, INCLUDE_DEFAULT_LOADER);
|
| if (loader) {
|
| ConnectToApplicationImpl(requested_url, resolved_url, requestor_url,
|
| - service_provider.Pass(), loader);
|
| + services.Pass(), exposed_services.Pass(), loader);
|
| return;
|
| }
|
|
|
| @@ -138,7 +137,8 @@ void ApplicationManager::ConnectToApplicationImpl(
|
| const GURL& requested_url,
|
| const GURL& resolved_url,
|
| const GURL& requestor_url,
|
| - ServiceProviderPtr service_provider,
|
| + InterfaceRequest<ServiceProvider> services,
|
| + ServiceProviderPtr exposed_services,
|
| ApplicationLoader* loader) {
|
| ShellImpl* shell = nullptr;
|
| URLToShellImplMap::const_iterator shell_it =
|
| @@ -156,14 +156,18 @@ void ApplicationManager::ConnectToApplicationImpl(
|
| base::Bind(&ApplicationManager::LoadWithContentHandler,
|
| weak_ptr_factory_.GetWeakPtr()));
|
| }
|
| - ConnectToClient(shell, resolved_url, requestor_url, service_provider.Pass());
|
| + ConnectToClient(shell, resolved_url, requestor_url, services.Pass(),
|
| + exposed_services.Pass());
|
| }
|
|
|
| -void ApplicationManager::ConnectToClient(ShellImpl* shell_impl,
|
| - const GURL& url,
|
| - const GURL& requestor_url,
|
| - ServiceProviderPtr service_provider) {
|
| - shell_impl->ConnectToClient(requestor_url, service_provider.Pass());
|
| +void ApplicationManager::ConnectToClient(
|
| + ShellImpl* shell_impl,
|
| + const GURL& url,
|
| + const GURL& requestor_url,
|
| + InterfaceRequest<ServiceProvider> services,
|
| + ServiceProviderPtr exposed_services) {
|
| + shell_impl->ConnectToClient(requestor_url, services.Pass(),
|
| + exposed_services.Pass());
|
| }
|
|
|
| void ApplicationManager::RegisterExternalApplication(
|
| @@ -256,13 +260,10 @@ void ApplicationManager::OnContentHandlerError(
|
| ScopedMessagePipeHandle ApplicationManager::ConnectToServiceByName(
|
| const GURL& application_url,
|
| const std::string& interface_name) {
|
| - StubServiceProvider* stub_sp = new StubServiceProvider;
|
| - ServiceProviderPtr spp;
|
| - BindToProxy(stub_sp, &spp);
|
| - ConnectToApplication(application_url, GURL(), spp.Pass());
|
| + ServiceProviderPtr services;
|
| + ConnectToApplication(application_url, GURL(), GetProxy(&services), nullptr);
|
| MessagePipe pipe;
|
| - stub_sp->GetRemoteServiceProvider()->ConnectToService(interface_name,
|
| - pipe.handle1.Pass());
|
| + services->ConnectToService(interface_name, pipe.handle1.Pass());
|
| return pipe.handle0.Pass();
|
| }
|
|
|
|
|