| 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/dynamic_application_loader.h" | 5 #include "mojo/shell/dynamic_application_loader.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/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 void DynamicApplicationLoader::RegisterContentHandler( | 257 void DynamicApplicationLoader::RegisterContentHandler( |
| 258 const std::string& mime_type, | 258 const std::string& mime_type, |
| 259 const GURL& content_handler_url) { | 259 const GURL& content_handler_url) { |
| 260 mime_type_to_url_[mime_type] = content_handler_url; | 260 mime_type_to_url_[mime_type] = content_handler_url; |
| 261 } | 261 } |
| 262 | 262 |
| 263 void DynamicApplicationLoader::Load( | 263 void DynamicApplicationLoader::Load( |
| 264 ApplicationManager* manager, | 264 ApplicationManager* manager, |
| 265 const GURL& url, | 265 const GURL& url, |
| 266 scoped_refptr<LoadCallbacks> load_callbacks) { | 266 scoped_refptr<LoadCallbacks> load_callbacks) { |
| 267 GURL resolved_url; | 267 if (url.SchemeIsFile()) { |
| 268 if (url.SchemeIs("mojo")) { | 268 loaders_.push_back(new LocalLoader(url, |
| 269 resolved_url = context_->mojo_url_resolver()->Resolve(url); | |
| 270 } else { | |
| 271 resolved_url = url; | |
| 272 } | |
| 273 | |
| 274 if (resolved_url.SchemeIsFile()) { | |
| 275 loaders_.push_back(new LocalLoader(resolved_url, | |
| 276 context_, | 269 context_, |
| 277 runner_factory_.get(), | 270 runner_factory_.get(), |
| 278 load_callbacks, | 271 load_callbacks, |
| 279 loader_complete_callback_)); | 272 loader_complete_callback_)); |
| 280 return; | 273 return; |
| 281 } | 274 } |
| 282 | 275 |
| 283 if (!network_service_) { | 276 if (!network_service_) { |
| 284 context_->application_manager()->ConnectToService( | 277 context_->application_manager()->ConnectToService( |
| 285 GURL("mojo:network_service"), &network_service_); | 278 GURL("mojo:network_service"), &network_service_); |
| 286 } | 279 } |
| 287 | 280 |
| 288 loaders_.push_back(new NetworkLoader(resolved_url, | 281 loaders_.push_back(new NetworkLoader(url, |
| 289 &mime_type_to_url_, | 282 &mime_type_to_url_, |
| 290 context_, | 283 context_, |
| 291 runner_factory_.get(), | 284 runner_factory_.get(), |
| 292 network_service_.get(), | 285 network_service_.get(), |
| 293 load_callbacks, | 286 load_callbacks, |
| 294 loader_complete_callback_)); | 287 loader_complete_callback_)); |
| 295 } | 288 } |
| 296 | 289 |
| 297 void DynamicApplicationLoader::OnApplicationError(ApplicationManager* manager, | 290 void DynamicApplicationLoader::OnApplicationError(ApplicationManager* manager, |
| 298 const GURL& url) { | 291 const GURL& url) { |
| 299 // TODO(darin): What should we do about service errors? This implies that | 292 // TODO(darin): What should we do about service errors? This implies that |
| 300 // the app closed its handle to the service manager. Maybe we don't care? | 293 // the app closed its handle to the service manager. Maybe we don't care? |
| 301 } | 294 } |
| 302 | 295 |
| 303 void DynamicApplicationLoader::LoaderComplete(Loader* loader) { | 296 void DynamicApplicationLoader::LoaderComplete(Loader* loader) { |
| 304 loaders_.erase(std::find(loaders_.begin(), loaders_.end(), loader)); | 297 loaders_.erase(std::find(loaders_.begin(), loaders_.end(), loader)); |
| 305 } | 298 } |
| 306 | 299 |
| 307 } // namespace shell | 300 } // namespace shell |
| 308 } // namespace mojo | 301 } // namespace mojo |
| OLD | NEW |