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

Unified Diff: shell/application_manager/application_manager.cc

Issue 974403002: Add --force-in-process flag to shell. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: amend comment Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « shell/application_manager/application_manager.h ('k') | shell/context.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: shell/application_manager/application_manager.cc
diff --git a/shell/application_manager/application_manager.cc b/shell/application_manager/application_manager.cc
index 2b1c632cff09c335518ee15b6a29c4b12e122cf2..145e4a1f25a26886dfd7020bf5495ac5fb80e0ef 100644
--- a/shell/application_manager/application_manager.cc
+++ b/shell/application_manager/application_manager.cc
@@ -23,6 +23,7 @@
namespace mojo {
namespace {
+
// Used by TestAPI.
bool has_created_instance = false;
@@ -296,16 +297,26 @@ void ApplicationManager::HandleFetchCallback(
// application. That could either mean looking for the platform-specific dll
// header, or looking for some specific mojo signature prepended to the
// library.
+ // TODO(vtl): (Maybe this should be done by the factory/runner?)
+
+ NativeRunnerFactory::Options options;
+ if (url_to_native_options_.find(fetcher->GetURL()) !=
qsr 2015/03/05 14:47:52 As you put it in the comment in SetNativeOptionsFo
viettrungluu 2015/03/05 18:30:10 That's easier now that you've landed your change.
+ url_to_native_options_.end()) {
+ DVLOG(2) << "Applying stored native options to resolved URL "
+ << fetcher->GetURL() << " (requested URL " << requested_url << ")";
+ options = url_to_native_options_[fetcher->GetURL()];
+ }
fetcher->AsPath(
blocking_pool_,
base::Bind(&ApplicationManager::RunNativeApplication,
weak_ptr_factory_.GetWeakPtr(), base::Passed(request.Pass()),
- cleanup_behavior, base::Passed(fetcher.Pass())));
+ options, cleanup_behavior, base::Passed(fetcher.Pass())));
}
void ApplicationManager::RunNativeApplication(
InterfaceRequest<Application> application_request,
+ const NativeRunnerFactory::Options& options,
NativeRunner::CleanupBehavior cleanup_behavior,
scoped_ptr<Fetcher> fetcher,
const base::FilePath& path,
@@ -321,7 +332,7 @@ void ApplicationManager::RunNativeApplication(
return;
}
- NativeRunner* runner = native_runner_factory_->Create().release();
+ NativeRunner* runner = native_runner_factory_->Create(options).release();
native_runners_.push_back(runner);
runner->Start(path, cleanup_behavior, application_request.Pass(),
base::Bind(&ApplicationManager::CleanupRunner,
@@ -390,6 +401,18 @@ void ApplicationManager::SetArgsForURL(const std::vector<std::string>& args,
url_to_args_[url] = args;
}
+void ApplicationManager::SetNativeOptionsForURL(
+ const NativeRunnerFactory::Options& options,
+ const GURL& url) {
+ // Apply mappings and resolution to get the resolved URL.
+ GURL resolved_url = delegate_->ResolveURL(delegate_->ResolveMappings(url));
+ // TODO(vtl): We should probably also remove/disregard the query string (and
+ // maybe canonicalize in other ways).
+ DVLOG(2) << "Storing native options for resolved URL " << resolved_url
+ << " (original URL " << url << ")";
+ url_to_native_options_[resolved_url] = options;
+}
+
ApplicationLoader* ApplicationManager::GetLoaderForURL(const GURL& url) {
auto url_it = url_to_loader_.find(StripQueryFromURL(url));
if (url_it != url_to_loader_.end())
« no previous file with comments | « shell/application_manager/application_manager.h ('k') | shell/context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698