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

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

Issue 2429943002: Remove all synchronous methods from OfflinePageBridge. (Closed)
Patch Set: Fix a test and address nits. Created 4 years, 2 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 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 InformDeletePageDone(callback, DeletePageResult::SUCCESS); 421 InformDeletePageDone(callback, DeletePageResult::SUCCESS);
422 return; 422 return;
423 } 423 }
424 424
425 archive_manager_->DeleteMultipleArchives( 425 archive_manager_->DeleteMultipleArchives(
426 paths_to_delete, 426 paths_to_delete,
427 base::Bind(&OfflinePageModelImpl::OnDeleteArchiveFilesDone, 427 base::Bind(&OfflinePageModelImpl::OnDeleteArchiveFilesDone,
428 weak_ptr_factory_.GetWeakPtr(), offline_ids, callback)); 428 weak_ptr_factory_.GetWeakPtr(), offline_ids, callback));
429 } 429 }
430 430
431 void OfflinePageModelImpl::DeletePagesByClientIds(
432 const std::vector<ClientId>& client_ids,
433 const DeletePageCallback& callback) {
434 RunWhenLoaded(base::Bind(&OfflinePageModelImpl::DoDeletePagesByClientIds,
435 weak_ptr_factory_.GetWeakPtr(), client_ids,
436 callback));
437 }
438
439 void OfflinePageModelImpl::DoDeletePagesByClientIds(
440 const std::vector<ClientId>& client_ids,
441 const DeletePageCallback& callback) {
442 std::set<ClientId> client_id_set(client_ids.begin(), client_ids.end());
443
444 std::vector<int64_t> offline_ids;
445 for (const auto& page_pair : offline_pages_) {
446 if (client_id_set.count(page_pair.second.client_id) > 0)
447 offline_ids.emplace_back(page_pair.first);
448 }
449
450 DoDeletePagesByOfflineId(offline_ids, callback);
451 }
452
453 void OfflinePageModelImpl::GetPagesByClientIds(
454 const std::vector<ClientId>& client_ids,
455 const MultipleOfflinePageItemCallback& callback) {
456 RunWhenLoaded(base::Bind(&OfflinePageModelImpl::DoGetPagesByClientIds,
457 weak_ptr_factory_.GetWeakPtr(), client_ids,
458 callback));
459 }
460
461 void OfflinePageModelImpl::DoGetPagesByClientIds(
462 const std::vector<ClientId>& client_ids,
463 const MultipleOfflinePageItemCallback& callback) {
464 std::set<ClientId> client_id_set(client_ids.begin(), client_ids.end());
465
466 std::vector<OfflinePageItem> result;
467 for (const auto& page_pair : offline_pages_) {
468 if (!page_pair.second.IsExpired() &&
469 client_id_set.count(page_pair.second.client_id) > 0) {
470 result.emplace_back(page_pair.second);
471 }
472 }
473 callback.Run(result);
474 }
475
431 void OfflinePageModelImpl::DeleteCachedPagesByURLPredicate( 476 void OfflinePageModelImpl::DeleteCachedPagesByURLPredicate(
432 const UrlPredicate& predicate, 477 const UrlPredicate& predicate,
433 const DeletePageCallback& callback) { 478 const DeletePageCallback& callback) {
434 RunWhenLoaded( 479 RunWhenLoaded(
435 base::Bind(&OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate, 480 base::Bind(&OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate,
436 weak_ptr_factory_.GetWeakPtr(), predicate, callback)); 481 weak_ptr_factory_.GetWeakPtr(), predicate, callback));
437 } 482 }
438 483
439 void OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate( 484 void OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate(
440 const UrlPredicate& predicate, 485 const UrlPredicate& predicate,
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 // stripped. 633 // stripped.
589 if (online_url_without_fragment == 634 if (online_url_without_fragment ==
590 id_page_pair.second.url.ReplaceComponents(remove_params)) { 635 id_page_pair.second.url.ReplaceComponents(remove_params)) {
591 result.push_back(id_page_pair.second); 636 result.push_back(id_page_pair.second);
592 } 637 }
593 } 638 }
594 639
595 callback.Run(result); 640 callback.Run(result);
596 } 641 }
597 642
598 const OfflinePageItem* OfflinePageModelImpl::MaybeGetBestPageForOnlineURL(
599 const GURL& online_url) const {
600 const OfflinePageItem* result = nullptr;
601 for (const auto& id_page_pair : offline_pages_) {
602 if (id_page_pair.second.url == online_url &&
603 !id_page_pair.second.IsExpired()) {
604 if (!result || id_page_pair.second.creation_time > result->creation_time)
605 result = &(id_page_pair.second);
606 }
607 }
608 return result;
609 }
610
611 void OfflinePageModelImpl::CheckMetadataConsistency() { 643 void OfflinePageModelImpl::CheckMetadataConsistency() {
612 DCHECK(is_loaded_); 644 DCHECK(is_loaded_);
613 archive_manager_->GetAllArchives( 645 archive_manager_->GetAllArchives(
614 base::Bind(&OfflinePageModelImpl::CheckMetadataConsistencyForArchivePaths, 646 base::Bind(&OfflinePageModelImpl::CheckMetadataConsistencyForArchivePaths,
615 weak_ptr_factory_.GetWeakPtr())); 647 weak_ptr_factory_.GetWeakPtr()));
616 } 648 }
617 649
618 void OfflinePageModelImpl::ExpirePages( 650 void OfflinePageModelImpl::ExpirePages(
619 const std::vector<int64_t>& offline_ids, 651 const std::vector<int64_t>& offline_ids,
620 const base::Time& expiration_time, 652 const base::Time& expiration_time,
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
1048 } 1080 }
1049 1081
1050 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task); 1082 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task);
1051 } 1083 }
1052 1084
1053 base::Time OfflinePageModelImpl::GetCurrentTime() const { 1085 base::Time OfflinePageModelImpl::GetCurrentTime() const {
1054 return testing_clock_ ? testing_clock_->Now() : base::Time::Now(); 1086 return testing_clock_ ? testing_clock_->Now() : base::Time::Now();
1055 } 1087 }
1056 1088
1057 } // namespace offline_pages 1089 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/offline_page_model_impl.h ('k') | components/offline_pages/offline_page_model_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698