Chromium Code Reviews| Index: chrome/browser/android/offline_pages/prerendering_offliner.cc |
| diff --git a/chrome/browser/android/offline_pages/prerendering_offliner.cc b/chrome/browser/android/offline_pages/prerendering_offliner.cc |
| index db341ef4c87b63951480215df3ff2f69ab5334b3..78886327ae233f284f7cd61227ba8914f728286c 100644 |
| --- a/chrome/browser/android/offline_pages/prerendering_offliner.cc |
| +++ b/chrome/browser/android/offline_pages/prerendering_offliner.cc |
| @@ -38,6 +38,7 @@ PrerenderingOffliner::PrerenderingOffliner( |
| offline_page_model_(offline_page_model), |
| pending_request_(nullptr), |
| is_low_end_device_(base::SysInfo::IsLowEndDevice()), |
| + saved_on_last_retry_(false), |
| app_listener_(nullptr), |
| weak_ptr_factory_(this) {} |
| @@ -158,12 +159,16 @@ void PrerenderingOffliner::OnSavePageDone( |
| // Determine status and run the completion callback. |
| Offliner::RequestStatus save_status; |
| if (save_result == SavePageResult::SUCCESS) { |
| - save_status = RequestStatus::SAVED; |
| + if (saved_on_last_retry_) |
| + save_status = RequestStatus::SAVED_ON_LAST_RETRY; |
| + else |
| + save_status = RequestStatus::SAVED; |
| } else { |
| // TODO(dougarnett): Consider reflecting some recommendation to retry the |
| // request based on specific save error cases. |
| save_status = RequestStatus::SAVE_FAILED; |
| } |
| + saved_on_last_retry_ = false; |
|
fgorski
2017/04/17 17:48:59
Would a single prerendering offliner be used for m
chili
2017/04/17 19:37:52
Good point. Added an additional clearing when we f
|
| completion_callback_.Run(request, save_status); |
| } |
| @@ -268,6 +273,7 @@ bool PrerenderingOffliner::HandleTimeout(const SavePageRequest& request) { |
| (request.started_attempt_count() + 1 >= policy_->GetMaxStartedTries() || |
| request.completed_attempt_count() + 1 >= |
| policy_->GetMaxCompletedTries())) { |
| + saved_on_last_retry_ = true; |
| GetOrCreateLoader()->StartSnapshot(); |
| return true; |
| } |