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

Unified Diff: ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.mm

Issue 2703333006: Move the notion of current Tab from TabModel to WebStateList. (Closed)
Patch Set: Rebase. Created 3 years, 10 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: 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"));
}

Powered by Google App Engine
This is Rietveld 408576698