| 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 28fd7a993a7866372f981e0f464d48f7af4f5a31..7162939d8aa7c953c98f0ee872f3484715920e7f 100644
|
| --- a/chrome/browser/android/offline_pages/prerendering_offliner.cc
|
| +++ b/chrome/browser/android/offline_pages/prerendering_offliner.cc
|
| @@ -12,6 +12,7 @@
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "components/content_settings/core/common/pref_names.h"
|
| +#include "components/offline_pages/core/background/offliner_policy.h"
|
| #include "components/offline_pages/core/background/save_page_request.h"
|
| #include "components/offline_pages/core/client_namespace_constants.h"
|
| #include "components/offline_pages/core/offline_page_model.h"
|
| @@ -49,6 +50,7 @@ PrerenderingOffliner::PrerenderingOffliner(
|
| const OfflinerPolicy* policy,
|
| OfflinePageModel* offline_page_model)
|
| : browser_context_(browser_context),
|
| + policy_(policy),
|
| offline_page_model_(offline_page_model),
|
| pending_request_(nullptr),
|
| is_low_end_device_(base::SysInfo::IsLowEndDevice()),
|
| @@ -225,6 +227,20 @@ void PrerenderingOffliner::Cancel() {
|
| }
|
| }
|
|
|
| +bool PrerenderingOffliner::HandleTimeout(const SavePageRequest& request) {
|
| + if (pending_request_) {
|
| + DCHECK(request.request_id() == pending_request_->request_id());
|
| + if (GetOrCreateLoader()->IsLowbarMet() &&
|
| + (request.started_attempt_count() + 1 >= policy_->GetMaxStartedTries() ||
|
| + request.completed_attempt_count() + 1 >=
|
| + policy_->GetMaxCompletedTries())) {
|
| + GetOrCreateLoader()->StartSnapshot();
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| +}
|
| +
|
| void PrerenderingOffliner::SetLoaderForTesting(
|
| std::unique_ptr<PrerenderingLoader> loader) {
|
| DCHECK(!loader_);
|
|
|