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 ba03aeafc78163deac95fea00b5de1510f343d9e..386ff30fcabb0ffd2e0f2868c7408066d51d24b7 100644 |
| --- a/chrome/browser/android/webapk/webapk_installer.cc |
| +++ b/chrome/browser/android/webapk/webapk_installer.cc |
| @@ -402,23 +402,42 @@ void WebApkInstaller::OnCreatedSubDirAndSetPermissions( |
| return; |
| } |
| + DownloadWebApk(output_dir.AppendASCII(webapk_package_), download_url, true); |
| +} |
| + |
| +void WebApkInstaller::DownloadWebApk(const base::FilePath& output_path, |
| + 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(); |
| + downloader_.reset(); |
|
pkotwicz
2016/10/03 21:30:56
I removed this from the diff.
It looks like base:
|
| if (result != FileDownloader::DOWNLOADED) { |
| - OnFailure(); |
| + if (!retry_if_fails) { |
| + OnFailure(); |
| + return; |
| + } |
| + |
| + content::BrowserThread::PostDelayedTask( |
| + content::BrowserThread::UI, FROM_HERE, |
| + base::Bind(&WebApkInstaller::DownloadWebApk, |
| + weak_ptr_factory_.GetWeakPtr(), |
| + file_path, download_url, false), |
| + base::TimeDelta::FromSeconds(2)); |
| return; |
| } |