| Index: components/offline_pages/offline_page_storage_manager.cc
 | 
| diff --git a/components/offline_pages/offline_page_storage_manager.cc b/components/offline_pages/offline_page_storage_manager.cc
 | 
| index c26a7e0d2b9a66cfe97f4d356ea284e68907bd00..b284719ea8bf3c04c3add9ca5514a724bde569f4 100644
 | 
| --- a/components/offline_pages/offline_page_storage_manager.cc
 | 
| +++ b/components/offline_pages/offline_page_storage_manager.cc
 | 
| @@ -69,68 +69,43 @@ void OfflinePageStorageManager::OnGetAllPagesDoneForClearingPages(
 | 
|      const ClearStorageCallback& callback,
 | 
|      const ArchiveManager::StorageStats& stats,
 | 
|      const MultipleOfflinePageItemResult& pages) {
 | 
| -  std::vector<int64_t> page_ids_to_expire;
 | 
| -  std::vector<int64_t> page_ids_to_remove;
 | 
| -  GetPageIdsToClear(pages, stats, &page_ids_to_expire, &page_ids_to_remove);
 | 
| -  model_->ExpirePages(
 | 
| -      page_ids_to_expire, clear_time_,
 | 
| -      base::Bind(&OfflinePageStorageManager::OnPagesExpired,
 | 
| -                 weak_ptr_factory_.GetWeakPtr(), callback,
 | 
| -                 page_ids_to_expire.size(), page_ids_to_remove));
 | 
| -}
 | 
| -
 | 
| -void OfflinePageStorageManager::OnPagesExpired(
 | 
| -    const ClearStorageCallback& callback,
 | 
| -    size_t pages_expired,
 | 
| -    const std::vector<int64_t>& page_ids_to_remove,
 | 
| -    bool expiration_succeeded) {
 | 
| -  // We want to delete the outdated page records regardless the expiration
 | 
| -  // succeeded or not.
 | 
| +  std::vector<int64_t> page_ids_to_clear;
 | 
| +  GetPageIdsToClear(pages, stats, &page_ids_to_clear);
 | 
|    model_->DeletePagesByOfflineId(
 | 
| -      page_ids_to_remove,
 | 
| -      base::Bind(&OfflinePageStorageManager::OnOutdatedPagesCleared,
 | 
| -                 weak_ptr_factory_.GetWeakPtr(), callback, pages_expired,
 | 
| -                 expiration_succeeded));
 | 
| +      page_ids_to_clear,
 | 
| +      base::Bind(&OfflinePageStorageManager::OnExpiredPagesCleared,
 | 
| +                 weak_ptr_factory_.GetWeakPtr(), callback,
 | 
| +                 page_ids_to_clear.size()));
 | 
|  }
 | 
|  
 | 
| -void OfflinePageStorageManager::OnOutdatedPagesCleared(
 | 
| +void OfflinePageStorageManager::OnExpiredPagesCleared(
 | 
|      const ClearStorageCallback& callback,
 | 
|      size_t pages_cleared,
 | 
| -    bool expiration_succeeded,
 | 
|      DeletePageResult result) {
 | 
| +  last_clear_time_ = clear_time_;
 | 
|    ClearStorageResult clear_result = ClearStorageResult::SUCCESS;
 | 
| -  if (!expiration_succeeded) {
 | 
| -    clear_result = ClearStorageResult::EXPIRE_FAILURE;
 | 
| -    if (result != DeletePageResult::SUCCESS)
 | 
| -      clear_result = ClearStorageResult::EXPIRE_AND_DELETE_FAILURES;
 | 
| -  } else if (result != DeletePageResult::SUCCESS) {
 | 
| +  if (result != DeletePageResult::SUCCESS)
 | 
|      clear_result = ClearStorageResult::DELETE_FAILURE;
 | 
| -  }
 | 
| -  last_clear_time_ = clear_time_;
 | 
|    callback.Run(pages_cleared, clear_result);
 | 
|  }
 | 
|  
 | 
|  void OfflinePageStorageManager::GetPageIdsToClear(
 | 
|      const MultipleOfflinePageItemResult& pages,
 | 
|      const ArchiveManager::StorageStats& stats,
 | 
| -    std::vector<int64_t>* page_ids_to_expire,
 | 
| -    std::vector<int64_t>* page_ids_to_remove) {
 | 
| +    std::vector<int64_t>* page_ids_to_clear) {
 | 
|    // TODO(romax): See how persistent should be considered here.
 | 
|    // Creating a map from namespace to a vector of page items.
 | 
|    // Sort each vector based on last accessed time and all pages after index
 | 
| -  // min{size(), page_limit} should be expired. And then start iterating
 | 
| -  // backwards to expire pages.
 | 
| +  // min{size(), page_limit} should be deleted.
 | 
|    std::map<std::string, std::vector<OfflinePageItem>> pages_map;
 | 
|    std::vector<OfflinePageItem> kept_pages;
 | 
|    int64_t kept_pages_size = 0;
 | 
|  
 | 
|    for (const auto& page : pages) {
 | 
| -    if (!page.IsExpired()) {
 | 
| +    if (!IsExpired(page))
 | 
|        pages_map[page.client_id.name_space].push_back(page);
 | 
| -    } else if (clear_time_ - page.expiration_time >=
 | 
| -               constants::kRemovePageItemInterval) {
 | 
| -      page_ids_to_remove->push_back(page.offline_id);
 | 
| -    }
 | 
| +    else
 | 
| +      page_ids_to_clear->push_back(page.offline_id);
 | 
|    }
 | 
|  
 | 
|    for (auto& iter : pages_map) {
 | 
| @@ -149,14 +124,14 @@ void OfflinePageStorageManager::GetPageIdsToClear(
 | 
|      size_t pos = 0;
 | 
|      while (pos < page_list_size &&
 | 
|             (policy.page_limit == kUnlimitedPages || pos < policy.page_limit) &&
 | 
| -           !ShouldBeExpired(page_list.at(pos))) {
 | 
| +           !IsExpired(page_list.at(pos))) {
 | 
|        kept_pages_size += page_list.at(pos).file_size;
 | 
|        kept_pages.push_back(page_list.at(pos));
 | 
|        pos++;
 | 
|      }
 | 
|  
 | 
|      for (; pos < page_list_size; pos++)
 | 
| -      page_ids_to_expire->push_back(page_list.at(pos).offline_id);
 | 
| +      page_ids_to_clear->push_back(page_list.at(pos).offline_id);
 | 
|    }
 | 
|  
 | 
|    // If we're still over the clear threshold, we're going to clear remaining
 | 
| @@ -176,7 +151,7 @@ void OfflinePageStorageManager::GetPageIdsToClear(
 | 
|      size_t pos = 0;
 | 
|      while (pos < kept_pages_size && space_to_release > 0) {
 | 
|        space_to_release -= kept_pages.at(pos).file_size;
 | 
| -      page_ids_to_expire->push_back(kept_pages.at(pos).offline_id);
 | 
| +      page_ids_to_clear->push_back(kept_pages.at(pos).offline_id);
 | 
|        pos++;
 | 
|      }
 | 
|    }
 | 
| @@ -206,8 +181,7 @@ OfflinePageStorageManager::ShouldClearPages(
 | 
|    return ClearMode::NOT_NEEDED;
 | 
|  }
 | 
|  
 | 
| -bool OfflinePageStorageManager::ShouldBeExpired(
 | 
| -    const OfflinePageItem& page) const {
 | 
| +bool OfflinePageStorageManager::IsExpired(const OfflinePageItem& page) const {
 | 
|    const LifetimePolicy& policy =
 | 
|        policy_controller_->GetPolicy(page.client_id.name_space).lifetime_policy;
 | 
|    return policy.lifetime_type == LifetimeType::TEMPORARY &&
 | 
| 
 |