| Index: shell/dynamic_application_loader.cc
|
| diff --git a/shell/dynamic_application_loader.cc b/shell/dynamic_application_loader.cc
|
| index ca63e6f6b73bc9c1ca8b340cb88604221e0db42a..ea7115e85c283d67f32124b3f1fd336ba684b3b2 100644
|
| --- a/shell/dynamic_application_loader.cc
|
| +++ b/shell/dynamic_application_loader.cc
|
| @@ -53,13 +53,15 @@ void IgnoreResult(bool result) {
|
| // while the async operation is outstanding.
|
| class DynamicApplicationLoader::Loader {
|
| public:
|
| - Loader(MimeTypeToURLMap* mime_type_to_url,
|
| + Loader(DynamicServiceRunner::CleanupBehavior cleanup_behavior,
|
| + MimeTypeToURLMap* mime_type_to_url,
|
| Context* context,
|
| DynamicServiceRunnerFactory* runner_factory,
|
| ScopedMessagePipeHandle shell_handle,
|
| ApplicationLoader::LoadCallback load_callback,
|
| const LoaderCompleteCallback& loader_complete_callback)
|
| - : shell_handle_(shell_handle.Pass()),
|
| + : cleanup_behavior_(cleanup_behavior),
|
| + shell_handle_(shell_handle.Pass()),
|
| load_callback_(load_callback),
|
| loader_complete_callback_(loader_complete_callback),
|
| context_(context),
|
| @@ -112,7 +114,7 @@ class DynamicApplicationLoader::Loader {
|
| base::Bind(&Loader::RunLibrary, weak_ptr_factory_.GetWeakPtr()));
|
| }
|
|
|
| - virtual void ReportComplete() { loader_complete_callback_.Run(this); }
|
| + void ReportComplete() { loader_complete_callback_.Run(this); }
|
|
|
| private:
|
| bool PeekContentHandler(std::string* mojo_shebang,
|
| @@ -141,10 +143,11 @@ class DynamicApplicationLoader::Loader {
|
|
|
| runner_ = runner_factory_->Create(context_);
|
| runner_->Start(
|
| - path, shell_handle_.Pass(),
|
| + path, cleanup_behavior_, shell_handle_.Pass(),
|
| base::Bind(&Loader::ReportComplete, weak_ptr_factory_.GetWeakPtr()));
|
| }
|
|
|
| + DynamicServiceRunner::CleanupBehavior cleanup_behavior_;
|
| ScopedMessagePipeHandle shell_handle_;
|
| ApplicationLoader::LoadCallback load_callback_;
|
| LoaderCompleteCallback loader_complete_callback_;
|
| @@ -165,7 +168,8 @@ class DynamicApplicationLoader::LocalLoader : public Loader {
|
| ScopedMessagePipeHandle shell_handle,
|
| ApplicationLoader::LoadCallback load_callback,
|
| const LoaderCompleteCallback& loader_complete_callback)
|
| - : Loader(mime_type_to_url,
|
| + : Loader(DynamicServiceRunner::DontDeleteAppPath,
|
| + mime_type_to_url,
|
| context,
|
| runner_factory,
|
| shell_handle.Pass(),
|
| @@ -253,7 +257,8 @@ class DynamicApplicationLoader::NetworkLoader : public Loader {
|
| ScopedMessagePipeHandle shell_handle,
|
| ApplicationLoader::LoadCallback load_callback,
|
| const LoaderCompleteCallback& loader_complete_callback)
|
| - : Loader(mime_type_to_url,
|
| + : Loader(DynamicServiceRunner::DeleteAppPath,
|
| + mime_type_to_url,
|
| context,
|
| runner_factory,
|
| shell_handle.Pass(),
|
| @@ -428,14 +433,6 @@ class DynamicApplicationLoader::NetworkLoader : public Loader {
|
| Load();
|
| }
|
|
|
| - void ReportComplete() override {
|
| - Loader::ReportComplete();
|
| - // As soon as we've loaded the library we can delete the cache file.
|
| - // Tools can read the mojo_shell.PID.maps file to find the original library.
|
| - if (!path_.empty())
|
| - DeleteFile(path_, false);
|
| - }
|
| -
|
| const GURL url_;
|
| URLLoaderPtr url_loader_;
|
| URLResponsePtr response_;
|
|
|