| OLD | NEW |
| 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 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 526 } | 526 } |
| 527 | 527 |
| 528 const OfflinePageItem* OfflinePageModelImpl::MaybeGetPageByOfflineId( | 528 const OfflinePageItem* OfflinePageModelImpl::MaybeGetPageByOfflineId( |
| 529 int64_t offline_id) const { | 529 int64_t offline_id) const { |
| 530 const auto iter = offline_pages_.find(offline_id); | 530 const auto iter = offline_pages_.find(offline_id); |
| 531 return iter != offline_pages_.end() && !iter->second.IsExpired() | 531 return iter != offline_pages_.end() && !iter->second.IsExpired() |
| 532 ? &(iter->second) | 532 ? &(iter->second) |
| 533 : nullptr; | 533 : nullptr; |
| 534 } | 534 } |
| 535 | 535 |
| 536 void OfflinePageModelImpl::GetPageByOfflineURL( | |
| 537 const GURL& offline_url, | |
| 538 const SingleOfflinePageItemCallback& callback) { | |
| 539 RunWhenLoaded( | |
| 540 base::Bind(&OfflinePageModelImpl::GetPageByOfflineURLWhenLoadDone, | |
| 541 weak_ptr_factory_.GetWeakPtr(), offline_url, callback)); | |
| 542 } | |
| 543 | |
| 544 void OfflinePageModelImpl::GetPageByOfflineURLWhenLoadDone( | |
| 545 const GURL& offline_url, | |
| 546 const SingleOfflinePageItemCallback& callback) const { | |
| 547 // Getting pages by offline URL does not exclude expired pages, as the caller | |
| 548 // already holds the offline URL and simply needs to look up a corresponding | |
| 549 // online URL. | |
| 550 const OfflinePageItem* result = nullptr; | |
| 551 | |
| 552 for (const auto& id_page_pair : offline_pages_) { | |
| 553 if (id_page_pair.second.GetOfflineURL() == offline_url) { | |
| 554 result = &id_page_pair.second; | |
| 555 break; | |
| 556 } | |
| 557 } | |
| 558 | |
| 559 callback.Run(result); | |
| 560 } | |
| 561 | |
| 562 const OfflinePageItem* OfflinePageModelImpl::MaybeGetPageByOfflineURL( | |
| 563 const GURL& offline_url) const { | |
| 564 // Getting pages by offline URL does not exclude expired pages, as the caller | |
| 565 // already holds the offline URL and simply needs to look up a corresponding | |
| 566 // online URL. | |
| 567 for (const auto& id_page_pair : offline_pages_) { | |
| 568 if (id_page_pair.second.GetOfflineURL() == offline_url) | |
| 569 return &(id_page_pair.second); | |
| 570 } | |
| 571 return nullptr; | |
| 572 } | |
| 573 | |
| 574 void OfflinePageModelImpl::GetPagesByOnlineURL( | 536 void OfflinePageModelImpl::GetPagesByOnlineURL( |
| 575 const GURL& online_url, | 537 const GURL& online_url, |
| 576 const MultipleOfflinePageItemCallback& callback) { | 538 const MultipleOfflinePageItemCallback& callback) { |
| 577 RunWhenLoaded( | 539 RunWhenLoaded( |
| 578 base::Bind(&OfflinePageModelImpl::GetPagesByOnlineURLWhenLoadDone, | 540 base::Bind(&OfflinePageModelImpl::GetPagesByOnlineURLWhenLoadDone, |
| 579 weak_ptr_factory_.GetWeakPtr(), online_url, callback)); | 541 weak_ptr_factory_.GetWeakPtr(), online_url, callback)); |
| 580 } | 542 } |
| 581 | 543 |
| 582 void OfflinePageModelImpl::GetPagesByOnlineURLWhenLoadDone( | 544 void OfflinePageModelImpl::GetPagesByOnlineURLWhenLoadDone( |
| 583 const GURL& online_url, | 545 const GURL& online_url, |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1070 void OfflinePageModelImpl::RunWhenLoaded(const base::Closure& task) { | 1032 void OfflinePageModelImpl::RunWhenLoaded(const base::Closure& task) { |
| 1071 if (!is_loaded_) { | 1033 if (!is_loaded_) { |
| 1072 delayed_tasks_.push_back(task); | 1034 delayed_tasks_.push_back(task); |
| 1073 return; | 1035 return; |
| 1074 } | 1036 } |
| 1075 | 1037 |
| 1076 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task); | 1038 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task); |
| 1077 } | 1039 } |
| 1078 | 1040 |
| 1079 } // namespace offline_pages | 1041 } // namespace offline_pages |
| OLD | NEW |