Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Side by Side Diff: mojo/shell/application_manager/application_manager.cc

Issue 1052103005: Documents what ApplicationManager::Delegate do (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: dont nuke Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/application_manager.h" 5 #include "mojo/shell/application_manager/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 13 matching lines...) Expand all
24 namespace mojo { 24 namespace mojo {
25 namespace shell { 25 namespace shell {
26 26
27 namespace { 27 namespace {
28 28
29 // Used by TestAPI. 29 // Used by TestAPI.
30 bool has_created_instance = false; 30 bool has_created_instance = false;
31 31
32 } // namespace 32 } // namespace
33 33
34 ApplicationManager::Delegate::~Delegate() {
35 }
36
37 GURL ApplicationManager::Delegate::ResolveURL(const GURL& url) {
38 return url;
39 }
40
41 GURL ApplicationManager::Delegate::ResolveMappings(const GURL& url) {
42 return url;
43 }
44
45 class ApplicationManager::ContentHandlerConnection : public ErrorHandler { 34 class ApplicationManager::ContentHandlerConnection : public ErrorHandler {
46 public: 35 public:
47 ContentHandlerConnection(ApplicationManager* manager, 36 ContentHandlerConnection(ApplicationManager* manager,
48 const GURL& content_handler_url) 37 const GURL& content_handler_url)
49 : manager_(manager), content_handler_url_(content_handler_url) { 38 : manager_(manager), content_handler_url_(content_handler_url) {
50 ServiceProviderPtr services; 39 ServiceProviderPtr services;
51 manager->ConnectToApplication(content_handler_url, GURL(), 40 manager->ConnectToApplication(content_handler_url, GURL(),
52 GetProxy(&services), nullptr, 41 GetProxy(&services), nullptr,
53 base::Closure()); 42 base::Closure());
54 MessagePipe pipe; 43 MessagePipe pipe;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 118
130 // We check both the mapped and resolved urls for existing shell_impls because 119 // We check both the mapped and resolved urls for existing shell_impls because
131 // external applications can be registered for the unresolved mojo:foo urls. 120 // external applications can be registered for the unresolved mojo:foo urls.
132 121
133 GURL mapped_url = delegate_->ResolveMappings(requested_url); 122 GURL mapped_url = delegate_->ResolveMappings(requested_url);
134 if (ConnectToRunningApplication(mapped_url, requestor_url, &services, 123 if (ConnectToRunningApplication(mapped_url, requestor_url, &services,
135 &exposed_services)) { 124 &exposed_services)) {
136 return; 125 return;
137 } 126 }
138 127
139 GURL resolved_url = delegate_->ResolveURL(mapped_url); 128 GURL resolved_url = delegate_->ResolveMojoURL(mapped_url);
140 if (ConnectToRunningApplication(resolved_url, requestor_url, &services, 129 if (ConnectToRunningApplication(resolved_url, requestor_url, &services,
141 &exposed_services)) { 130 &exposed_services)) {
142 return; 131 return;
143 } 132 }
144 133
145 // The application is not running, let's compute the parameters. 134 // The application is not running, let's compute the parameters.
146 if (ConnectToApplicationWithLoader(mapped_url, requestor_url, &services, 135 if (ConnectToApplicationWithLoader(mapped_url, requestor_url, &services,
147 &exposed_services, on_application_end, 136 &exposed_services, on_application_end,
148 pre_redirect_parameters, 137 pre_redirect_parameters,
149 GetLoaderForURL(mapped_url))) { 138 GetLoaderForURL(mapped_url))) {
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 if (it != scheme_to_loader_.end()) 393 if (it != scheme_to_loader_.end())
405 delete it->second; 394 delete it->second;
406 scheme_to_loader_[scheme] = loader.release(); 395 scheme_to_loader_[scheme] = loader.release();
407 } 396 }
408 397
409 void ApplicationManager::SetNativeOptionsForURL( 398 void ApplicationManager::SetNativeOptionsForURL(
410 const NativeRunnerFactory::Options& options, 399 const NativeRunnerFactory::Options& options,
411 const GURL& url) { 400 const GURL& url) {
412 DCHECK(!url.has_query()); // Precondition. 401 DCHECK(!url.has_query()); // Precondition.
413 // Apply mappings and resolution to get the resolved URL. 402 // Apply mappings and resolution to get the resolved URL.
414 GURL resolved_url = delegate_->ResolveURL(delegate_->ResolveMappings(url)); 403 GURL resolved_url =
404 delegate_->ResolveMojoURL(delegate_->ResolveMappings(url));
415 DCHECK(!resolved_url.has_query()); // Still shouldn't have query. 405 DCHECK(!resolved_url.has_query()); // Still shouldn't have query.
416 // TODO(vtl): We should probably also remove/disregard the query string (and 406 // TODO(vtl): We should probably also remove/disregard the query string (and
417 // maybe canonicalize in other ways). 407 // maybe canonicalize in other ways).
418 DVLOG(2) << "Storing native options for resolved URL " << resolved_url 408 DVLOG(2) << "Storing native options for resolved URL " << resolved_url
419 << " (original URL " << url << ")"; 409 << " (original URL " << url << ")";
420 url_to_native_options_[resolved_url] = options; 410 url_to_native_options_[resolved_url] = options;
421 } 411 }
422 412
423 ApplicationLoader* ApplicationManager::GetLoaderForURL(const GURL& url) { 413 ApplicationLoader* ApplicationManager::GetLoaderForURL(const GURL& url) {
424 auto url_it = url_to_loader_.find(GetBaseURLAndQuery(url, nullptr)); 414 auto url_it = url_to_loader_.find(GetBaseURLAndQuery(url, nullptr));
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 return pipe.handle0.Pass(); 454 return pipe.handle0.Pass();
465 } 455 }
466 456
467 void ApplicationManager::CleanupRunner(NativeRunner* runner) { 457 void ApplicationManager::CleanupRunner(NativeRunner* runner) {
468 native_runners_.erase( 458 native_runners_.erase(
469 std::find(native_runners_.begin(), native_runners_.end(), runner)); 459 std::find(native_runners_.begin(), native_runners_.end(), runner));
470 } 460 }
471 461
472 } // namespace shell 462 } // namespace shell
473 } // namespace mojo 463 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/shell/application_manager/application_manager.h ('k') | mojo/shell/application_manager/application_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698