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

Unified Diff: chrome/browser/android/data_usage/data_use_tab_model.cc

Issue 1444133002: Add UMA histograms for data usage tab model (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed tbansal comments Created 5 years, 1 month 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: chrome/browser/android/data_usage/data_use_tab_model.cc
diff --git a/chrome/browser/android/data_usage/data_use_tab_model.cc b/chrome/browser/android/data_usage/data_use_tab_model.cc
index c4d8e36e39e2716ec47af99ce4fe3453efac5227..d41046807747e2442a5e599eb592e9cadbbdb451 100644
--- a/chrome/browser/android/data_usage/data_use_tab_model.cc
+++ b/chrome/browser/android/data_usage/data_use_tab_model.cc
@@ -4,7 +4,7 @@
#include "chrome/browser/android/data_usage/data_use_tab_model.h"
-#include "base/time/time.h"
+#include "base/metrics/histogram_macros.h"
#include "chrome/browser/android/data_usage/external_data_use_observer.h"
#include "chrome/browser/android/data_usage/tab_data_use_entry.h"
@@ -19,16 +19,19 @@ bool IsValidTabID(int32_t tab_id) {
return tab_id >= 0;
}
+const char kUMAExpiredInactiveTabEntryRemovalDurationSecondsHistogram[] =
+ "DataUse.TabModel.ExpiredInactiveTabEntryRemovalDuration";
+const char kUMAExpiredActiveTabEntryRemovalDurationHoursHistogram[] =
+ "DataUse.TabModel.ExpiredActiveTabEntryRemovalDuration";
+const char kUMAUnexpiredTabEntryRemovalDurationMinutesHistogram[] =
+ "DataUse.TabModel.UnexpiredTabEntryRemovalDuration";
+
} // namespace
namespace chrome {
namespace android {
-size_t DataUseTabModel::GetMaxTabEntriesForTests() {
- return kMaxTabEntries;
-}
-
DataUseTabModel::DataUseTabModel(
const ExternalDataUseObserver* data_use_observer,
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
@@ -125,6 +128,14 @@ void DataUseTabModel::RemoveObserver(TabDataUseObserver* observer) {
observer_list_->RemoveObserver(observer);
}
+base::TimeTicks DataUseTabModel::Now() const {
+ return base::TimeTicks::Now();
+}
+
+size_t DataUseTabModel::GetMaxTabEntriesForTests() {
+ return kMaxTabEntries;
+}
+
void DataUseTabModel::NotifyObserversOfTrackingStarting(int32_t tab_id) {
observer_list_->Notify(FROM_HERE, &TabDataUseObserver::NotifyTrackingStarting,
tab_id);
@@ -168,10 +179,26 @@ void DataUseTabModel::CompactTabEntries() {
// Remove expired tab entries.
for (TabEntryMap::iterator tab_entry_iterator = active_tabs_.begin();
tab_entry_iterator != active_tabs_.end();) {
- if (tab_entry_iterator->second.IsExpired())
+ const auto& tab_entry = tab_entry_iterator->second;
+ if (tab_entry.IsExpired()) {
+ // Track the lifetime of expired tab entry.
+ const base::TimeDelta removal_time =
+ Now() - tab_entry.GetLatestStartOrEndTime();
+ if (!tab_entry.IsTrackingDataUse()) {
+ UMA_HISTOGRAM_CUSTOM_TIMES(
+ kUMAExpiredInactiveTabEntryRemovalDurationSecondsHistogram,
+ removal_time, base::TimeDelta::FromSeconds(1),
+ base::TimeDelta::FromHours(1), 50);
+ } else {
+ UMA_HISTOGRAM_CUSTOM_TIMES(
+ kUMAExpiredActiveTabEntryRemovalDurationHoursHistogram,
+ removal_time, base::TimeDelta::FromHours(1),
+ base::TimeDelta::FromDays(5), 50);
+ }
active_tabs_.erase(tab_entry_iterator++);
- else
+ } else {
++tab_entry_iterator;
+ }
}
if (active_tabs_.size() <= kMaxTabEntries)
@@ -189,6 +216,10 @@ void DataUseTabModel::CompactTabEntries() {
}
}
DCHECK(oldest_tab_entry_iterator != active_tabs_.end());
+ UMA_HISTOGRAM_CUSTOM_TIMES(
+ kUMAUnexpiredTabEntryRemovalDurationMinutesHistogram,
+ Now() - oldest_tab_entry_iterator->second.GetLatestStartOrEndTime(),
+ base::TimeDelta::FromMinutes(1), base::TimeDelta::FromHours(1), 50);
active_tabs_.erase(oldest_tab_entry_iterator);
}
}

Powered by Google App Engine
This is Rietveld 408576698