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

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

Issue 1471753002: Do not consider url query when setting application arguments. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Follow review Created 5 years, 1 month 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
« no previous file with comments | « no previous file | shell/application_manager/application_manager_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 } 449 }
450 450
451 void ApplicationManager::SetLoaderForScheme( 451 void ApplicationManager::SetLoaderForScheme(
452 scoped_ptr<ApplicationLoader> loader, 452 scoped_ptr<ApplicationLoader> loader,
453 const std::string& scheme) { 453 const std::string& scheme) {
454 scheme_to_loader_[scheme] = loader.Pass(); 454 scheme_to_loader_[scheme] = loader.Pass();
455 } 455 }
456 456
457 void ApplicationManager::SetArgsForURL(const std::vector<std::string>& args, 457 void ApplicationManager::SetArgsForURL(const std::vector<std::string>& args,
458 const GURL& url) { 458 const GURL& url) {
459 url_to_args_[url].insert(url_to_args_[url].end(), args.begin(), args.end()); 459 GURL base_url = GetBaseURLAndQuery(url, nullptr);
460 GURL mapped_url = delegate_->ResolveMappings(url); 460 url_to_args_[base_url].insert(url_to_args_[base_url].end(), args.begin(),
461 args.end());
462 GURL mapped_url = delegate_->ResolveMappings(base_url);
463 DCHECK(!mapped_url.has_query());
461 if (mapped_url != url) { 464 if (mapped_url != url) {
462 url_to_args_[mapped_url].insert(url_to_args_[mapped_url].end(), 465 url_to_args_[mapped_url].insert(url_to_args_[mapped_url].end(),
463 args.begin(), args.end()); 466 args.begin(), args.end());
464 } 467 }
465 GURL resolved_url = delegate_->ResolveMojoURL(mapped_url); 468 GURL resolved_url = delegate_->ResolveMojoURL(mapped_url);
469 DCHECK(!resolved_url.has_query());
466 if (resolved_url != mapped_url) { 470 if (resolved_url != mapped_url) {
467 url_to_args_[resolved_url].insert(url_to_args_[resolved_url].end(), 471 url_to_args_[resolved_url].insert(url_to_args_[resolved_url].end(),
468 args.begin(), args.end()); 472 args.begin(), args.end());
469 } 473 }
470 } 474 }
471 475
472 NativeApplicationOptions* ApplicationManager::GetNativeApplicationOptionsForURL( 476 NativeApplicationOptions* ApplicationManager::GetNativeApplicationOptionsForURL(
473 const GURL& url) { 477 const GURL& url) {
474 DCHECK(!url.has_query()); // Precondition. 478 DCHECK(!url.has_query()); // Precondition.
475 // Apply mappings and resolution to get the resolved URL. 479 // Apply mappings and resolution to get the resolved URL.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 const std::string& interface_name) { 520 const std::string& interface_name) {
517 ServiceProviderPtr services; 521 ServiceProviderPtr services;
518 ConnectToApplication(application_url, GURL(), mojo::GetProxy(&services), 522 ConnectToApplication(application_url, GURL(), mojo::GetProxy(&services),
519 nullptr, base::Closure()); 523 nullptr, base::Closure());
520 mojo::MessagePipe pipe; 524 mojo::MessagePipe pipe;
521 services->ConnectToService(interface_name, pipe.handle1.Pass()); 525 services->ConnectToService(interface_name, pipe.handle1.Pass());
522 return pipe.handle0.Pass(); 526 return pipe.handle0.Pass();
523 } 527 }
524 528
525 std::vector<std::string> ApplicationManager::GetArgsForURL(const GURL& url) { 529 std::vector<std::string> ApplicationManager::GetArgsForURL(const GURL& url) {
526 const auto& args_it = url_to_args_.find(url); 530 GURL base_url = GetBaseURLAndQuery(url, nullptr);
531 const auto& args_it = url_to_args_.find(base_url);
527 if (args_it != url_to_args_.end()) 532 if (args_it != url_to_args_.end())
528 return args_it->second; 533 return args_it->second;
529 return std::vector<std::string>(); 534 return std::vector<std::string>();
530 } 535 }
531 536
532 void ApplicationManager::CleanupRunner(NativeRunner* runner) { 537 void ApplicationManager::CleanupRunner(NativeRunner* runner) {
533 native_runners_.erase( 538 native_runners_.erase(
534 std::find(native_runners_.begin(), native_runners_.end(), runner)); 539 std::find(native_runners_.begin(), native_runners_.end(), runner));
535 } 540 }
536 541
537 } // namespace shell 542 } // namespace shell
OLDNEW
« no previous file with comments | « no previous file | shell/application_manager/application_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698