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

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

Issue 1105063002: Documents what ApplicationManager::Delegate do (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 7 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 "shell/application_manager/application_manager.h" 5 #include "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 29 matching lines...) Expand all
40 return v2; 40 return v2;
41 if (!v2.size()) 41 if (!v2.size())
42 return v1; 42 return v1;
43 std::vector<std::string> result(v1); 43 std::vector<std::string> result(v1);
44 result.insert(result.end(), v1.begin(), v1.end()); 44 result.insert(result.end(), v1.begin(), v1.end());
45 return result; 45 return result;
46 } 46 }
47 47
48 } // namespace 48 } // namespace
49 49
50 ApplicationManager::Delegate::~Delegate() {
51 }
52
53 GURL ApplicationManager::Delegate::ResolveURL(const GURL& url) {
54 return url;
55 }
56
57 GURL ApplicationManager::Delegate::ResolveMappings(const GURL& url) {
58 return url;
59 }
60
61 class ApplicationManager::ContentHandlerConnection : public mojo::ErrorHandler { 50 class ApplicationManager::ContentHandlerConnection : public mojo::ErrorHandler {
62 public: 51 public:
63 ContentHandlerConnection(ApplicationManager* manager, 52 ContentHandlerConnection(ApplicationManager* manager,
64 const GURL& content_handler_url) 53 const GURL& content_handler_url)
65 : manager_(manager), content_handler_url_(content_handler_url) { 54 : manager_(manager), content_handler_url_(content_handler_url) {
66 ServiceProviderPtr services; 55 ServiceProviderPtr services;
67 manager->ConnectToApplication(content_handler_url, GURL(), 56 manager->ConnectToApplication(content_handler_url, GURL(),
68 mojo::GetProxy(&services), nullptr, 57 mojo::GetProxy(&services), nullptr,
69 base::Closure()); 58 base::Closure());
70 mojo::MessagePipe pipe; 59 mojo::MessagePipe pipe;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 135
147 // We check both the mapped and resolved urls for existing shell_impls because 136 // We check both the mapped and resolved urls for existing shell_impls because
148 // external applications can be registered for the unresolved mojo:foo urls. 137 // external applications can be registered for the unresolved mojo:foo urls.
149 138
150 GURL mapped_url = delegate_->ResolveMappings(requested_url); 139 GURL mapped_url = delegate_->ResolveMappings(requested_url);
151 if (ConnectToRunningApplication(mapped_url, requestor_url, &services, 140 if (ConnectToRunningApplication(mapped_url, requestor_url, &services,
152 &exposed_services)) { 141 &exposed_services)) {
153 return; 142 return;
154 } 143 }
155 144
156 GURL resolved_url = delegate_->ResolveURL(mapped_url); 145 GURL resolved_url = delegate_->ResolveMojoURL(mapped_url);
157 if (ConnectToRunningApplication(resolved_url, requestor_url, &services, 146 if (ConnectToRunningApplication(resolved_url, requestor_url, &services,
158 &exposed_services)) { 147 &exposed_services)) {
159 return; 148 return;
160 } 149 }
161 150
162 // The application is not running, let's compute the parameters. 151 // The application is not running, let's compute the parameters.
163 std::vector<std::string> parameters = 152 std::vector<std::string> parameters =
164 Concatenate(pre_redirect_parameters, GetArgsForURL(resolved_url)); 153 Concatenate(pre_redirect_parameters, GetArgsForURL(resolved_url));
165 154
166 if (ConnectToApplicationWithLoader(mapped_url, requestor_url, &services, 155 if (ConnectToApplicationWithLoader(mapped_url, requestor_url, &services,
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 } 415 }
427 416
428 void ApplicationManager::SetArgsForURL(const std::vector<std::string>& args, 417 void ApplicationManager::SetArgsForURL(const std::vector<std::string>& args,
429 const GURL& url) { 418 const GURL& url) {
430 url_to_args_[url].insert(url_to_args_[url].end(), args.begin(), args.end()); 419 url_to_args_[url].insert(url_to_args_[url].end(), args.begin(), args.end());
431 GURL mapped_url = delegate_->ResolveMappings(url); 420 GURL mapped_url = delegate_->ResolveMappings(url);
432 if (mapped_url != url) { 421 if (mapped_url != url) {
433 url_to_args_[mapped_url].insert(url_to_args_[mapped_url].end(), 422 url_to_args_[mapped_url].insert(url_to_args_[mapped_url].end(),
434 args.begin(), args.end()); 423 args.begin(), args.end());
435 } 424 }
436 GURL resolved_url = delegate_->ResolveURL(mapped_url); 425 GURL resolved_url = delegate_->ResolveMojoURL(mapped_url);
437 if (resolved_url != mapped_url) { 426 if (resolved_url != mapped_url) {
438 url_to_args_[resolved_url].insert(url_to_args_[resolved_url].end(), 427 url_to_args_[resolved_url].insert(url_to_args_[resolved_url].end(),
439 args.begin(), args.end()); 428 args.begin(), args.end());
440 } 429 }
441 } 430 }
442 431
443 void ApplicationManager::SetNativeOptionsForURL( 432 void ApplicationManager::SetNativeOptionsForURL(
444 const NativeRunnerFactory::Options& options, 433 const NativeRunnerFactory::Options& options,
445 const GURL& url) { 434 const GURL& url) {
446 DCHECK(!url.has_query()); // Precondition. 435 DCHECK(!url.has_query()); // Precondition.
447 // Apply mappings and resolution to get the resolved URL. 436 // Apply mappings and resolution to get the resolved URL.
448 GURL resolved_url = delegate_->ResolveURL(delegate_->ResolveMappings(url)); 437 GURL resolved_url =
438 delegate_->ResolveMojoURL(delegate_->ResolveMappings(url));
449 DCHECK(!resolved_url.has_query()); // Still shouldn't have query. 439 DCHECK(!resolved_url.has_query()); // Still shouldn't have query.
450 // TODO(vtl): We should probably also remove/disregard the query string (and 440 // TODO(vtl): We should probably also remove/disregard the query string (and
451 // maybe canonicalize in other ways). 441 // maybe canonicalize in other ways).
452 DVLOG(2) << "Storing native options for resolved URL " << resolved_url 442 DVLOG(2) << "Storing native options for resolved URL " << resolved_url
453 << " (original URL " << url << ")"; 443 << " (original URL " << url << ")";
454 url_to_native_options_[resolved_url] = options; 444 url_to_native_options_[resolved_url] = options;
455 } 445 }
456 446
457 ApplicationLoader* ApplicationManager::GetLoaderForURL(const GURL& url) { 447 ApplicationLoader* ApplicationManager::GetLoaderForURL(const GURL& url) {
458 auto url_it = url_to_loader_.find(GetBaseURLAndQuery(url, nullptr)); 448 auto url_it = url_to_loader_.find(GetBaseURLAndQuery(url, nullptr));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 return args_it->second; 494 return args_it->second;
505 return std::vector<std::string>(); 495 return std::vector<std::string>();
506 } 496 }
507 497
508 void ApplicationManager::CleanupRunner(NativeRunner* runner) { 498 void ApplicationManager::CleanupRunner(NativeRunner* runner) {
509 native_runners_.erase( 499 native_runners_.erase(
510 std::find(native_runners_.begin(), native_runners_.end(), runner)); 500 std::find(native_runners_.begin(), native_runners_.end(), runner));
511 } 501 }
512 502
513 } // namespace shell 503 } // namespace shell
OLDNEW
« no previous file with comments | « shell/application_manager/application_manager.h ('k') | shell/application_manager/application_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698