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

Unified Diff: components/offline_pages/offline_page_model_impl.cc

Issue 2322833002: Support serving offline page by offline ID (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: components/offline_pages/offline_page_model_impl.cc
diff --git a/components/offline_pages/offline_page_model_impl.cc b/components/offline_pages/offline_page_model_impl.cc
index 25f2e08a68de91249597a5a83ee048cdcde3bb42..01f10797fe48bf512e933059c1096d013598f562 100644
--- a/components/offline_pages/offline_page_model_impl.cc
+++ b/components/offline_pages/offline_page_model_impl.cc
@@ -17,6 +17,7 @@
#include "base/strings/string16.h"
#include "base/strings/string_number_conversions.h"
#include "base/threading/thread_task_runner_handle.h"
+#include "base/time/default_clock.h"
#include "base/time/time.h"
#include "components/offline_pages/archive_manager.h"
#include "components/offline_pages/client_namespace_constants.h"
@@ -150,7 +151,8 @@ void ReportSavePageResultHistogramAfterSave(const ClientId& client_id,
histogram->Add(static_cast<int>(result));
}
-void ReportPageHistogramAfterSave(const OfflinePageItem& offline_page) {
+void ReportPageHistogramAfterSave(const OfflinePageItem& offline_page,
+ base::Clock* clock) {
// The histogram below is an expansion of the UMA_HISTOGRAM_TIMES
// macro adapted to allow for a dynamically suffixed histogram name.
// Note: The factory creates and owns the histogram.
@@ -158,7 +160,7 @@ void ReportPageHistogramAfterSave(const OfflinePageItem& offline_page) {
AddHistogramSuffix(offline_page.client_id, "OfflinePages.SavePageTime"),
base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromSeconds(10),
50, base::HistogramBase::kUmaTargetedHistogramFlag);
- histogram->AddTime(base::Time::Now() - offline_page.creation_time);
+ histogram->AddTime(clock->Now() - offline_page.creation_time);
// The histogram below is an expansion of the UMA_HISTOGRAM_CUSTOM_COUNTS
// macro adapted to allow for a dynamically suffixed histogram name.
@@ -172,9 +174,10 @@ void ReportPageHistogramAfterSave(const OfflinePageItem& offline_page) {
void ReportPageHistogramsAfterDelete(
const std::map<int64_t, OfflinePageItem>& offline_pages,
- const std::vector<int64_t>& deleted_offline_ids) {
+ const std::vector<int64_t>& deleted_offline_ids,
+ base::Clock* clock) {
const int max_minutes = base::TimeDelta::FromDays(365).InMinutes();
- base::Time now = base::Time::Now();
+ base::Time now = clock->Now();
int64_t total_size = 0;
for (int64_t offline_id : deleted_offline_ids) {
auto iter = offline_pages.find(offline_id);
@@ -225,7 +228,8 @@ void ReportPageHistogramsAfterDelete(
}
}
-void ReportPageHistogramsAfterAccess(const OfflinePageItem& offline_page_item) {
+void ReportPageHistogramsAfterAccess(const OfflinePageItem& offline_page_item,
+ base::Clock* clock) {
// The histogram below is an expansion of the UMA_HISTOGRAM_CUSTOM_COUNTS
// macro adapted to allow for a dynamically suffixed histogram name.
// Note: The factory creates and owns the histogram.
@@ -238,7 +242,7 @@ void ReportPageHistogramsAfterAccess(const OfflinePageItem& offline_page_item) {
1, kMaxOpenedPageHistogramBucket.InMinutes(), 50,
base::HistogramBase::kUmaTargetedHistogramFlag);
histogram->Add(
- (base::Time::Now() - offline_page_item.last_access_time).InMinutes());
+ (clock->Now() - offline_page_item.last_access_time).InMinutes());
}
} // namespace
@@ -256,6 +260,7 @@ OfflinePageModelImpl::OfflinePageModelImpl(
is_loaded_(false),
policy_controller_(new ClientPolicyController()),
archive_manager_(new ArchiveManager(archives_dir, task_runner)),
+ clock_(new base::DefaultClock()),
weak_ptr_factory_(this) {
archive_manager_->EnsureArchivesDirCreated(
base::Bind(&OfflinePageModelImpl::OnEnsureArchivesDirCreatedDone,
@@ -303,7 +308,7 @@ void OfflinePageModelImpl::SavePage(
archives_dir_, proposed_offline_id,
base::Bind(&OfflinePageModelImpl::OnCreateArchiveDone,
weak_ptr_factory_.GetWeakPtr(), url, proposed_offline_id,
- client_id, base::Time::Now(), callback));
+ client_id, clock_->Now(), callback));
pending_archivers_.push_back(std::move(archiver));
}
@@ -323,9 +328,9 @@ void OfflinePageModelImpl::MarkPageAccessedWhenLoadDone(int64_t offline_id) {
// be updated upon the successful store operation.
OfflinePageItem offline_page_item = iter->second;
- ReportPageHistogramsAfterAccess(offline_page_item);
+ ReportPageHistogramsAfterAccess(offline_page_item, clock_.get());
- offline_page_item.last_access_time = base::Time::Now();
+ offline_page_item.last_access_time = clock_->Now();
offline_page_item.access_count++;
store_->AddOrUpdateOfflinePage(
@@ -679,6 +684,11 @@ OfflinePageMetadataStore* OfflinePageModelImpl::GetStoreForTesting() {
return store_.get();
}
+void OfflinePageModelImpl::SetClockForTesting(
+ std::unique_ptr<base::Clock> clock) {
+ clock_ = std::move(clock);
+}
+
OfflinePageStorageManager* OfflinePageModelImpl::GetStorageManager() {
return storage_manager_.get();
}
@@ -736,7 +746,7 @@ void OfflinePageModelImpl::OnAddOfflinePageDone(
if (success) {
offline_pages_[offline_page.offline_id] = offline_page;
result = SavePageResult::SUCCESS;
- ReportPageHistogramAfterSave(offline_page);
+ ReportPageHistogramAfterSave(offline_page, clock_.get());
offline_event_logger_.RecordPageSaved(
offline_page.client_id.name_space, offline_page.url.spec(),
std::to_string(offline_page.offline_id));
@@ -895,7 +905,7 @@ void OfflinePageModelImpl::OnRemoveOfflinePagesDone(
const std::vector<int64_t>& offline_ids,
const DeletePageCallback& callback,
bool success) {
- ReportPageHistogramsAfterDelete(offline_pages_, offline_ids);
+ ReportPageHistogramsAfterDelete(offline_pages_, offline_ids, clock_.get());
for (int64_t offline_id : offline_ids) {
offline_event_logger_.RecordPageDeleted(std::to_string(offline_id));
@@ -944,7 +954,7 @@ void OfflinePageModelImpl::ExpirePagesMissingArchiveFile(
return;
ExpirePages(
- ids_of_pages_missing_archive_file, base::Time::Now(),
+ ids_of_pages_missing_archive_file, clock_->Now(),
base::Bind(&OfflinePageModelImpl::OnExpirePagesMissingArchiveFileDone,
weak_ptr_factory_.GetWeakPtr(),
ids_of_pages_missing_archive_file));

Powered by Google App Engine
This is Rietveld 408576698