| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/offline_pages/core/background/offliner_policy_utils.h" |
| |
| #include "base/time/time.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/offline_clock.h" |
| |
| namespace offline_pages { |
| |
| // static function to check request expiration or cleanup status. |
| OfflinerPolicyUtils::RequestExpirationStatus |
| OfflinerPolicyUtils::CheckRequestExpirationStatus( |
| const SavePageRequest* request, |
| const OfflinerPolicy* policy) { |
| DCHECK(request); |
| DCHECK(policy); |
| |
| if (OfflineTimeNow() - request->creation_time() >= |
| base::TimeDelta::FromSeconds( |
| policy->GetRequestExpirationTimeInSeconds())) { |
| return RequestExpirationStatus::EXPIRED; |
| } |
| if (request->started_attempt_count() >= policy->GetMaxStartedTries()) |
| return RequestExpirationStatus::START_COUNT_EXCEEDED; |
| |
| if (request->completed_attempt_count() >= policy->GetMaxCompletedTries()) |
| return RequestExpirationStatus::COMPLETION_COUNT_EXCEEDED; |
| |
| return RequestExpirationStatus::VALID; |
| } |
| |
| } // namespace offline_pages |