Chromium Code Reviews| Index: chrome/browser/android/webapk/webapk_installer.cc |
| diff --git a/chrome/browser/android/webapk/webapk_installer.cc b/chrome/browser/android/webapk/webapk_installer.cc |
| index 37df154bd8a3115e4a5972973c4ac9b6b9766e7b..52dc9965a840a4ef8ce3ad7835d393c91e8132ad 100644 |
| --- a/chrome/browser/android/webapk/webapk_installer.cc |
| +++ b/chrome/browser/android/webapk/webapk_installer.cc |
| @@ -17,6 +17,7 @@ |
| #include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/task_runner_util.h" |
| +#include "base/threading/platform_thread.h" |
| #include "base/threading/sequenced_worker_pool.h" |
| #include "chrome/browser/android/shortcut_helper.h" |
| #include "chrome/browser/android/webapk/webapk.pb.h" |
| @@ -355,23 +356,38 @@ void WebApkInstaller::OnGotWebApkDownloadUrl(const GURL& download_url, |
| // directory. |
| // TODO(pkotwicz): Figure out when downloaded WebAPK should be deleted. |
| + StartDownloadingWebApk( |
| + output_dir.AppendASCII(webapk_package_), download_url, true); |
| +} |
| + |
| +void WebApkInstaller::StartDownloadingWebApk(const base::FilePath& output_path, |
|
pkotwicz
2016/09/27 19:47:28
Nit: Rename this function to DownloadWebApk()
I t
Xi Han
2016/09/27 20:53:31
Done.
|
| + const GURL& download_url, |
| + bool retry_if_fails) { |
| timer_.Start( |
| FROM_HERE, base::TimeDelta::FromMilliseconds(download_timeout_ms_), |
| base::Bind(&WebApkInstaller::OnTimeout, weak_ptr_factory_.GetWeakPtr())); |
| - base::FilePath output_path = output_dir.AppendASCII(webapk_package_); |
| downloader_.reset(new FileDownloader( |
| download_url, output_path, true, request_context_getter_, |
| base::Bind(&WebApkInstaller::OnWebApkDownloaded, |
| - weak_ptr_factory_.GetWeakPtr(), output_path))); |
| + weak_ptr_factory_.GetWeakPtr(), |
| + output_path, download_url, retry_if_fails))); |
| } |
| void WebApkInstaller::OnWebApkDownloaded(const base::FilePath& file_path, |
| + const GURL& download_url, |
| + bool retry_if_fails, |
| FileDownloader::Result result) { |
| timer_.Stop(); |
|
pkotwicz
2016/09/27 19:47:28
Nit: Maybe reset |downloader_| for clarity
Xi Han
2016/09/27 20:53:31
Done.
|
| if (result != FileDownloader::DOWNLOADED) { |
| - OnFailure(); |
| + if (!retry_if_fails) { |
| + OnFailure(); |
| + return; |
| + } |
| + |
| + base::PlatformThread::Sleep(base::TimeDelta::FromSeconds(2)); |
|
pkotwicz
2016/09/27 19:47:28
Use BrowserThread::PostDelayedTask() instead
Xi Han
2016/09/27 20:53:31
Done.
|
| + StartDownloadingWebApk(file_path, download_url, false); |
| return; |
| } |