Chromium Code Reviews| 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()) |