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; |
} |