| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "mojo/shell/application_manager.h" | 5 #include "mojo/shell/application_manager.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 bool ApplicationManager::ConnectToRunningApplication( | 178 bool ApplicationManager::ConnectToRunningApplication( |
| 179 ApplicationInstance* originator, | 179 ApplicationInstance* originator, |
| 180 const GURL& resolved_url, | 180 const GURL& resolved_url, |
| 181 const std::string& qualifier, | 181 const std::string& qualifier, |
| 182 const GURL& requestor_url, | 182 const GURL& requestor_url, |
| 183 InterfaceRequest<ServiceProvider>* services, | 183 InterfaceRequest<ServiceProvider>* services, |
| 184 ServiceProviderPtr* exposed_services, | 184 ServiceProviderPtr* exposed_services, |
| 185 CapabilityFilterPtr* filter) { | 185 CapabilityFilterPtr* filter) { |
| 186 GURL application_url = GetBaseURLAndQuery(resolved_url, nullptr); | 186 GURL application_url = GetBaseURLAndQuery(resolved_url, nullptr); |
| 187 ApplicationInstance* instance = | 187 ApplicationInstance* instance = |
| 188 GetApplicationInstance(application_url, qualifier); | 188 GetApplicationInstance(Identity(application_url, qualifier)); |
| 189 if (!instance) | 189 if (!instance) |
| 190 return false; | 190 return false; |
| 191 | 191 |
| 192 instance->ConnectToClient(originator, resolved_url, requestor_url, | 192 instance->ConnectToClient(originator, resolved_url, requestor_url, |
| 193 services->Pass(), exposed_services->Pass(), | 193 services->Pass(), exposed_services->Pass(), |
| 194 filter->Pass()); | 194 filter->Pass()); |
| 195 return true; | 195 return true; |
| 196 } | 196 } |
| 197 | 197 |
| 198 bool ApplicationManager::ConnectToApplicationWithLoader( | 198 bool ApplicationManager::ConnectToApplicationWithLoader( |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 InterfaceRequest<Application> application_request = GetProxy(&application); | 235 InterfaceRequest<Application> application_request = GetProxy(&application); |
| 236 ApplicationInstance::CapabilityFilter capability_filter; | 236 ApplicationInstance::CapabilityFilter capability_filter; |
| 237 std::set<std::string> interfaces; | 237 std::set<std::string> interfaces; |
| 238 interfaces.insert("*"); | 238 interfaces.insert("*"); |
| 239 capability_filter["*"] = interfaces; | 239 capability_filter["*"] = interfaces; |
| 240 if (!filter.is_null()) { | 240 if (!filter.is_null()) { |
| 241 capability_filter = | 241 capability_filter = |
| 242 filter->filter.To<ApplicationInstance::CapabilityFilter>(); | 242 filter->filter.To<ApplicationInstance::CapabilityFilter>(); |
| 243 } | 243 } |
| 244 ApplicationInstance* instance = new ApplicationInstance( | 244 ApplicationInstance* instance = new ApplicationInstance( |
| 245 application.Pass(), this, app_identity, capability_filter, | 245 application.Pass(), this, |
| 246 on_application_end); | 246 originator ? originator->identity() : Identity(GURL()), app_identity, |
| 247 capability_filter, on_application_end); |
| 247 identity_to_instance_[app_identity] = instance; | 248 identity_to_instance_[app_identity] = instance; |
| 248 instance->InitializeApplication(); | 249 instance->InitializeApplication(); |
| 249 instance->ConnectToClient(originator, app_url, requestor_url, services.Pass(), | 250 instance->ConnectToClient(originator, app_url, requestor_url, services.Pass(), |
| 250 exposed_services.Pass(), filter.Pass()); | 251 exposed_services.Pass(), filter.Pass()); |
| 251 return application_request.Pass(); | 252 return application_request.Pass(); |
| 252 } | 253 } |
| 253 | 254 |
| 254 ApplicationInstance* ApplicationManager::GetApplicationInstance( | 255 ApplicationInstance* ApplicationManager::GetApplicationInstance( |
| 255 const GURL& url, | 256 const Identity& identity) const { |
| 256 const std::string& qualifier) { | 257 const auto& instance_it = identity_to_instance_.find(identity); |
| 257 const auto& instance_it = | |
| 258 identity_to_instance_.find(Identity(url, qualifier)); | |
| 259 if (instance_it != identity_to_instance_.end()) | 258 if (instance_it != identity_to_instance_.end()) |
| 260 return instance_it->second; | 259 return instance_it->second; |
| 261 return nullptr; | 260 return nullptr; |
| 262 } | 261 } |
| 263 | 262 |
| 264 void ApplicationManager::HandleFetchCallback( | 263 void ApplicationManager::HandleFetchCallback( |
| 265 ApplicationInstance* originator, | 264 ApplicationInstance* originator, |
| 266 const GURL& requested_url, | 265 const GURL& requested_url, |
| 267 const std::string& qualifier, | 266 const std::string& qualifier, |
| 268 const GURL& requestor_url, | 267 const GURL& requestor_url, |
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 533 request->url = mojo::String::From(application_url.spec()); | 532 request->url = mojo::String::From(application_url.spec()); |
| 534 ConnectToApplication(nullptr, request.Pass(), std::string(), GURL(), | 533 ConnectToApplication(nullptr, request.Pass(), std::string(), GURL(), |
| 535 GetProxy(&services), nullptr, nullptr, base::Closure()); | 534 GetProxy(&services), nullptr, nullptr, base::Closure()); |
| 536 MessagePipe pipe; | 535 MessagePipe pipe; |
| 537 services->ConnectToService(interface_name, pipe.handle1.Pass()); | 536 services->ConnectToService(interface_name, pipe.handle1.Pass()); |
| 538 return pipe.handle0.Pass(); | 537 return pipe.handle0.Pass(); |
| 539 } | 538 } |
| 540 | 539 |
| 541 } // namespace shell | 540 } // namespace shell |
| 542 } // namespace mojo | 541 } // namespace mojo |
| OLD | NEW |