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

Unified Diff: components/offline_pages/offline_page_model.cc

Issue 1988973002: [Offline pages] Moving disk size related calls to Archive Manager, reorganizing UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@archive-manager
Patch Set: Adding test, updating ArchiveManager implementation to task runner. Created 4 years, 7 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.cc
diff --git a/components/offline_pages/offline_page_model.cc b/components/offline_pages/offline_page_model.cc
index 5870bec63082ab7b79058f0943a1316d11899bef..55b7c62bc188fc13bf72ce371d19dd2ef04e7d9e 100644
--- a/components/offline_pages/offline_page_model.cc
+++ b/components/offline_pages/offline_page_model.cc
@@ -79,6 +79,40 @@ SavePageResult ToSavePageResult(ArchiverResult archiver_result) {
return result;
}
+void ReportStorageUMAAfterSave(
jianli 2016/05/18 00:06:00 ReportStorageHistogramsAfterSave
fgorski 2016/05/18 18:14:59 Done.
+ const ArchiveManager::StorageSizes storage_sizes) {
jianli 2016/05/18 00:06:00 nit: add &
fgorski 2016/05/18 18:14:59 Done.
+ int mb = 1024 * 1024;
jianli 2016/05/18 00:06:00 nit: const int or inline it
fgorski 2016/05/18 18:14:59 Done.
+ int free_disk_space_mb = static_cast<int>(storage_sizes.free_disk_space / mb);
+ UMA_HISTOGRAM_CUSTOM_COUNTS("OfflinePages.SavePage.FreeSpaceMB",
+ free_disk_space_mb, 1, 500000, 50);
+
+ int total_page_size_mb =
+ static_cast<int>(storage_sizes.total_archives_size / mb);
+ UMA_HISTOGRAM_COUNTS_10000("OfflinePages.TotalPageSize", total_page_size_mb);
+}
+
+void ReportStorageUMAAfterDelete(
+ const ArchiveManager::StorageSizes storage_sizes) {
+ int mb = 1024 * 1024;
+ int free_disk_space_mb = static_cast<int>(storage_sizes.free_disk_space / mb);
+ UMA_HISTOGRAM_CUSTOM_COUNTS("OfflinePages.DeletePage.FreeSpaceMB",
+ free_disk_space_mb, 1, 500000, 50);
+
+ int total_page_size_mb =
+ static_cast<int>(storage_sizes.total_archives_size / mb);
+ UMA_HISTOGRAM_COUNTS_10000("OfflinePages.TotalPageSize", total_page_size_mb);
+
+ if (storage_sizes.free_disk_space > 0) {
+ int percentage_of_free = static_cast<int>(
+ 1.0 * storage_sizes.total_archives_size /
+ (storage_sizes.total_archives_size + storage_sizes.free_disk_space) *
+ 100);
+ UMA_HISTOGRAM_PERCENTAGE(
+ "OfflinePages.DeletePage.TotalPageSizeAsPercentageOfFreeSpace",
+ percentage_of_free);
+ }
+}
+
} // namespace
// static
@@ -459,36 +493,6 @@ void OfflinePageModel::CheckForExternalFileDeletion() {
weak_ptr_factory_.GetWeakPtr()));
}
-void OfflinePageModel::RecordStorageHistograms(int64_t total_space_bytes,
- int64_t free_space_bytes,
- bool reporting_after_delete) {
- // Total space taken by offline pages.
- int64_t total_page_size = 0;
- for (const auto& id_page_pair : offline_pages_) {
- total_page_size += id_page_pair.second.file_size;
- }
-
- int total_page_size_mb = static_cast<int>(total_page_size / (1024 * 1024));
- UMA_HISTOGRAM_COUNTS_10000("OfflinePages.TotalPageSize", total_page_size_mb);
-
- // How much of the total space the offline pages take.
- int total_page_size_percentage =
- static_cast<int>(1.0 * total_page_size / total_space_bytes * 100);
- UMA_HISTOGRAM_PERCENTAGE("OfflinePages.TotalPageSizePercentage",
- total_page_size_percentage);
-
- // If the user is deleting the pages, perhaps they are running out of free
- // space. Report the size before the operation, where a base for calculation
- // of total free space includes space taken by offline pages.
- if (reporting_after_delete && free_space_bytes > 0) {
- int percentage_of_free = static_cast<int>(
- 1.0 * total_page_size / (total_page_size + free_space_bytes) * 100);
- UMA_HISTOGRAM_PERCENTAGE(
- "OfflinePages.DeletePage.TotalPageSizeAsPercentageOfFreeSpace",
- percentage_of_free);
- }
-}
-
ClientPolicyController* OfflinePageModel::GetPolicyController() {
return policy_controller_.get();
}
@@ -617,6 +621,7 @@ void OfflinePageModel::InformSavePageDone(const SavePageCallback& callback,
"OfflinePages.SavePageResult",
static_cast<int>(result),
static_cast<int>(SavePageResult::RESULT_COUNT));
+ archive_manager_->GetStorageSizes(base::Bind(&ReportStorageUMAAfterSave));
callback.Run(result, offline_id);
}
@@ -698,6 +703,7 @@ void OfflinePageModel::InformDeletePageDone(const DeletePageCallback& callback,
"OfflinePages.DeletePageResult",
static_cast<int>(result),
static_cast<int>(DeletePageResult::RESULT_COUNT));
+ archive_manager_->GetStorageSizes(base::Bind(&ReportStorageUMAAfterDelete));
if (!callback.is_null())
callback.Run(result);
}

Powered by Google App Engine
This is Rietveld 408576698