Chromium Code Reviews| Index: components/data_use_measurement/core/data_use_measurement.cc |
| diff --git a/components/data_use_measurement/core/data_use_measurement.cc b/components/data_use_measurement/core/data_use_measurement.cc |
| index fcebeb8d070d079520f1ebde9a28275fcd20bc27..345eff248ebd54fbe695ae3e4fff42a3d0d5bbaa 100644 |
| --- a/components/data_use_measurement/core/data_use_measurement.cc |
| +++ b/components/data_use_measurement/core/data_use_measurement.cc |
| @@ -100,6 +100,8 @@ DataUseMeasurement::DataUseMeasurement( |
| { |
| DCHECK(ascriber_); |
| DCHECK(url_request_classifier_); |
| + memset(user_traffic_content_type_bytes_, 0, |
| + sizeof(user_traffic_content_type_bytes_)); |
| #if defined(OS_ANDROID) |
| int64_t bytes = 0; |
| @@ -445,12 +447,17 @@ void DataUseMeasurement::RecordContentTypeHistogram( |
| // Use the more primitive STATIC_HISTOGRAM_POINTER_BLOCK macro because the |
| // simple UMA_HISTOGRAM_ENUMERATION macros don't expose 'AddCount'. |
| if (is_user_traffic) { |
| - STATIC_HISTOGRAM_POINTER_BLOCK( |
| - "DataUse.ContentType.UserTraffic", AddCount(content_type, bytes), |
| - base::LinearHistogram::FactoryGet( |
| - "DataUse.ContentType.UserTraffic", 1, DataUseUserData::TYPE_MAX, |
| - DataUseUserData::TYPE_MAX + 1, |
| - base::HistogramBase::kUmaTargetedHistogramFlag)); |
| + bytes += user_traffic_content_type_bytes_[content_type]; |
| + if (bytes >= 1024) { |
| + STATIC_HISTOGRAM_POINTER_BLOCK( |
| + "DataUse.ContentType.UserTrafficKB", |
| + AddCount(content_type, bytes / 1024), |
| + base::LinearHistogram::FactoryGet( |
| + "DataUse.ContentType.UserTrafficKB", 1, DataUseUserData::TYPE_MAX, |
|
Ilya Sherman
2017/05/02 21:28:52
This histogram would still overflow if there are ~
Ilya Sherman
2017/05/02 21:29:58
Actually, slightly less than 4.5 TB, as I was calc
|
| + DataUseUserData::TYPE_MAX + 1, |
| + base::HistogramBase::kUmaTargetedHistogramFlag)); |
| + } |
| + user_traffic_content_type_bytes_[content_type] = bytes % 1024; |
| } else { |
| STATIC_HISTOGRAM_POINTER_BLOCK( |
| "DataUse.ContentType.Services", AddCount(content_type, bytes), |