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..9fccee22a2f899ab14af0b7d7b0969525957de46 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,23 @@ 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(requested_url) != |
jamesr
2015/03/04 20:55:24
hmm, I would think that options would apply to the
|
+ url_to_native_options_.end()) |
+ options = url_to_native_options_[requested_url]; |
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 +329,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 +398,12 @@ void ApplicationManager::SetArgsForURL(const std::vector<std::string>& args, |
url_to_args_[url] = args; |
} |
+void ApplicationManager::SetNativeOptionsForURL( |
+ const NativeRunnerFactory::Options& options, |
+ const GURL& url) { |
+ url_to_native_options_[url] = options; |
+} |
+ |
ApplicationLoader* ApplicationManager::GetLoaderForURL(const GURL& url) { |
auto url_it = url_to_loader_.find(StripQueryFromURL(url)); |
if (url_it != url_to_loader_.end()) |