| 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..645041f9ca8f1005a1554293d4d742aa7cde0a5e 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;
|
| + }
|
| + 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
|
|
|