Chromium Code Reviews| 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); |
| } |