Chromium Code Reviews| Index: chrome/browser/android/offline_pages/offline_page_utils.cc |
| diff --git a/chrome/browser/android/offline_pages/offline_page_utils.cc b/chrome/browser/android/offline_pages/offline_page_utils.cc |
| index 48dda928449c6dea04058e40600f8323dc871da5..97e5dbc3f374d472e29e76dde776d9ce87348214 100644 |
| --- a/chrome/browser/android/offline_pages/offline_page_utils.cc |
| +++ b/chrome/browser/android/offline_pages/offline_page_utils.cc |
| @@ -129,6 +129,19 @@ void CheckDuplicateOngoingDownloads( |
| request_coordinator_continuation, browser_context, url, callback)); |
| } |
| +void DoCalculateSizeBetween( |
| + const offline_pages::SizeInBytesCallback& callback, |
| + const base::Time& begin_time, |
| + const base::Time& end_time, |
| + const offline_pages::MultipleOfflinePageItemResult& result) { |
| + int64_t total_size = 0; |
| + for (auto& page : result) { |
| + if (begin_time < page.creation_time && page.creation_time < end_time) |
| + total_size += page.file_size; |
|
carlosk
2017/05/05 18:20:27
The interval here should be closed-open, where th
romax
2017/05/05 21:01:30
Done.
|
| + } |
| + callback.Run(total_size); |
| +} |
| + |
| } // namespace |
| // static |
| @@ -308,4 +321,23 @@ bool OfflinePageUtils::CanDownloadAsOfflinePage( |
| net::MatchesMimeType(contents_mime_type, "application/xhtml+xml")); |
| } |
| +// static |
| +bool OfflinePageUtils::GetCachedOfflinePageSizeBetween( |
| + content::BrowserContext* browser_context, |
| + const SizeInBytesCallback& callback, |
| + const base::Time& begin_time, |
| + const base::Time& end_time) { |
| + OfflinePageModel* offline_page_model = |
| + OfflinePageModelFactory::GetForBrowserContext(browser_context); |
| + if (!offline_page_model || begin_time > end_time) |
| + return false; |
| + OfflinePageModelQueryBuilder builder; |
| + builder.RequireRemovedOnCacheReset( |
| + OfflinePageModelQuery::Requirement::INCLUDE_MATCHING); |
| + offline_page_model->GetPagesMatchingQuery( |
| + builder.Build(offline_page_model->GetPolicyController()), |
| + base::Bind(&DoCalculateSizeBetween, callback, begin_time, end_time)); |
| + return true; |
| +} |
| + |
| } // namespace offline_pages |