Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(840)

Side by Side Diff: components/offline_pages/offline_page_model_impl.cc

Issue 2353393002: [Offline pages] Extracting and templatizing types for store callbacks (Closed)
Patch Set: Removing offline_store_types_impl.h Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/offline_pages/offline_page_model_impl.h" 5 #include "components/offline_pages/offline_page_model_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 691
692 if (paths_to_delete.empty()) { 692 if (paths_to_delete.empty()) {
693 callback.Run(true); 693 callback.Run(true);
694 return; 694 return;
695 } 695 }
696 archive_manager_->DeleteMultipleArchives(paths_to_delete, callback); 696 archive_manager_->DeleteMultipleArchives(paths_to_delete, callback);
697 } 697 }
698 698
699 void OfflinePageModelImpl::OnExpirePageDone( 699 void OfflinePageModelImpl::OnExpirePageDone(
700 const base::Time& expiration_time, 700 const base::Time& expiration_time,
701 std::unique_ptr<StoreUpdateResult> result) { 701 std::unique_ptr<OfflinePagesUpdateResult> result) {
702 UMA_HISTOGRAM_BOOLEAN("OfflinePages.ExpirePage.StoreUpdateResult", 702 UMA_HISTOGRAM_BOOLEAN("OfflinePages.ExpirePage.StoreUpdateResult",
703 result->updated_items.size() > 0); 703 result->updated_items.size() > 0);
704 for (const auto& expired_page : result->updated_items) { 704 for (const auto& expired_page : result->updated_items) {
705 const auto& iter = offline_pages_.find(expired_page.offline_id); 705 const auto& iter = offline_pages_.find(expired_page.offline_id);
706 if (iter == offline_pages_.end()) 706 if (iter == offline_pages_.end())
707 continue; 707 continue;
708 708
709 iter->second.expiration_time = expiration_time; 709 iter->second.expiration_time = expiration_time;
710 ClientId client_id = iter->second.client_id; 710 ClientId client_id = iter->second.client_id;
711 offline_event_logger_.RecordPageExpired( 711 offline_event_logger_.RecordPageExpired(
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
807 } else { 807 } else {
808 PostClearStorageIfNeededTask(); 808 PostClearStorageIfNeededTask();
809 } 809 }
810 810
811 DeletePendingArchiver(archiver); 811 DeletePendingArchiver(archiver);
812 FOR_EACH_OBSERVER(Observer, observers_, OfflinePageModelChanged(this)); 812 FOR_EACH_OBSERVER(Observer, observers_, OfflinePageModelChanged(this));
813 } 813 }
814 814
815 void OfflinePageModelImpl::OnMarkPageAccesseDone( 815 void OfflinePageModelImpl::OnMarkPageAccesseDone(
816 const OfflinePageItem& offline_page_item, 816 const OfflinePageItem& offline_page_item,
817 std::unique_ptr<StoreUpdateResult> result) { 817 std::unique_ptr<OfflinePagesUpdateResult> result) {
818 // Update the item in the cache only upon success. 818 // Update the item in the cache only upon success.
819 if (result->updated_items.size() > 0) 819 if (result->updated_items.size() > 0)
820 offline_pages_[offline_page_item.offline_id] = offline_page_item; 820 offline_pages_[offline_page_item.offline_id] = offline_page_item;
821 821
822 // No need to fire OfflinePageModelChanged event since updating access info 822 // No need to fire OfflinePageModelChanged event since updating access info
823 // should not have any impact to the UI. 823 // should not have any impact to the UI.
824 } 824 }
825 825
826 void OfflinePageModelImpl::OnEnsureArchivesDirCreatedDone( 826 void OfflinePageModelImpl::OnEnsureArchivesDirCreatedDone(
827 const base::TimeTicks& start_time) { 827 const base::TimeTicks& start_time) {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 return; 943 return;
944 } 944 }
945 945
946 store_->RemoveOfflinePages( 946 store_->RemoveOfflinePages(
947 offline_ids, base::Bind(&OfflinePageModelImpl::OnRemoveOfflinePagesDone, 947 offline_ids, base::Bind(&OfflinePageModelImpl::OnRemoveOfflinePagesDone,
948 weak_ptr_factory_.GetWeakPtr(), callback)); 948 weak_ptr_factory_.GetWeakPtr(), callback));
949 } 949 }
950 950
951 void OfflinePageModelImpl::OnRemoveOfflinePagesDone( 951 void OfflinePageModelImpl::OnRemoveOfflinePagesDone(
952 const DeletePageCallback& callback, 952 const DeletePageCallback& callback,
953 std::unique_ptr<StoreUpdateResult> result) { 953 std::unique_ptr<OfflinePagesUpdateResult> result) {
954 ReportPageHistogramsAfterDelete(offline_pages_, result->updated_items, 954 ReportPageHistogramsAfterDelete(offline_pages_, result->updated_items,
955 GetCurrentTime()); 955 GetCurrentTime());
956 956
957 // This part of the loop is explicitly broken out, as it should be gone in 957 // This part of the loop is explicitly broken out, as it should be gone in
958 // fully asynchronous code. 958 // fully asynchronous code.
959 for (const auto& page : result->updated_items) { 959 for (const auto& page : result->updated_items) {
960 int64_t offline_id = page.offline_id; 960 int64_t offline_id = page.offline_id;
961 offline_event_logger_.RecordPageDeleted(std::to_string(offline_id)); 961 offline_event_logger_.RecordPageDeleted(std::to_string(offline_id));
962 auto iter = offline_pages_.find(offline_id); 962 auto iter = offline_pages_.find(offline_id);
963 if (iter == offline_pages_.end()) 963 if (iter == offline_pages_.end())
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1144 } 1144 }
1145 1145
1146 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task); 1146 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task);
1147 } 1147 }
1148 1148
1149 base::Time OfflinePageModelImpl::GetCurrentTime() const { 1149 base::Time OfflinePageModelImpl::GetCurrentTime() const {
1150 return testing_clock_ ? testing_clock_->Now() : base::Time::Now(); 1150 return testing_clock_ ? testing_clock_->Now() : base::Time::Now();
1151 } 1151 }
1152 1152
1153 } // namespace offline_pages 1153 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/offline_page_model_impl.h ('k') | components/offline_pages/offline_page_test_store.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698