Index: ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.mm |
diff --git a/ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.mm b/ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.mm |
index e2c201d05ce76ac2deea29de14a4978605951bf4..7d7ec8bf7847e7dbd7eedc5849e32608fd7024d2 100644 |
--- a/ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.mm |
+++ b/ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.mm |
@@ -4,6 +4,7 @@ |
#import "ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.h" |
+#include "base/metrics/histogram_macros.h" |
#include "base/metrics/user_metrics.h" |
#include "base/metrics/user_metrics_action.h" |
@@ -11,15 +12,33 @@ |
#error "This file requires ARC support." |
#endif |
-WebStateListMetricsObserver::WebStateListMetricsObserver() = default; |
+WebStateListMetricsObserver::WebStateListMetricsObserver() { |
+ ResetSessionMetrics(); |
+} |
WebStateListMetricsObserver::~WebStateListMetricsObserver() = default; |
+void WebStateListMetricsObserver::ResetSessionMetrics() { |
+ inserted_web_state_counter_ = 0; |
+ detached_web_state_counter_ = 0; |
+ activated_web_state_counter_ = 0; |
+} |
+ |
+void WebStateListMetricsObserver::RecordSessionMetrics() { |
+ UMA_HISTOGRAM_CUSTOM_COUNTS("Session.ClosedTabCounts", |
+ detached_web_state_counter_, 1, 200, 50); |
+ UMA_HISTOGRAM_CUSTOM_COUNTS("Session.OpenedTabCounts", |
+ activated_web_state_counter_, 1, 200, 50); |
+ UMA_HISTOGRAM_CUSTOM_COUNTS("Session.NewTabCounts", |
+ inserted_web_state_counter_, 1, 200, 50); |
+} |
+ |
void WebStateListMetricsObserver::WebStateInsertedAt( |
WebStateList* web_state_list, |
web::WebState* web_state, |
int index) { |
base::RecordAction(base::UserMetricsAction("MobileNewTabOpened")); |
+ ++inserted_web_state_counter_; |
} |
void WebStateListMetricsObserver::WebStateReplacedAt( |
@@ -37,4 +56,18 @@ void WebStateListMetricsObserver::WebStateDetachedAt( |
web::WebState* web_state, |
int index) { |
base::RecordAction(base::UserMetricsAction("MobileTabClosed")); |
+ ++detached_web_state_counter_; |
+} |
+ |
+void WebStateListMetricsObserver::WebStateActivatedAt( |
+ WebStateList* web_state_list, |
+ web::WebState* old_web_state, |
+ web::WebState* new_web_state, |
+ int active_index, |
+ bool user_action) { |
+ ++activated_web_state_counter_; |
+ if (!user_action) |
+ return; |
+ |
+ base::RecordAction(base::UserMetricsAction("MobileTabSwitched")); |
} |