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

Side by Side 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, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.h" 5 #import "ios/shared/chrome/browser/tabs/web_state_list_metrics_observer.h"
6 6
7 #include "base/metrics/histogram_macros.h"
7 #include "base/metrics/user_metrics.h" 8 #include "base/metrics/user_metrics.h"
8 #include "base/metrics/user_metrics_action.h" 9 #include "base/metrics/user_metrics_action.h"
9 10
10 #if !defined(__has_feature) || !__has_feature(objc_arc) 11 #if !defined(__has_feature) || !__has_feature(objc_arc)
11 #error "This file requires ARC support." 12 #error "This file requires ARC support."
12 #endif 13 #endif
13 14
14 WebStateListMetricsObserver::WebStateListMetricsObserver() = default; 15 WebStateListMetricsObserver::WebStateListMetricsObserver() {
16 ResetSessionMetrics();
17 }
15 18
16 WebStateListMetricsObserver::~WebStateListMetricsObserver() = default; 19 WebStateListMetricsObserver::~WebStateListMetricsObserver() = default;
17 20
21 void WebStateListMetricsObserver::ResetSessionMetrics() {
22 inserted_web_state_counter_ = 0;
23 detached_web_state_counter_ = 0;
24 activated_web_state_counter_ = 0;
25 }
26
27 void WebStateListMetricsObserver::RecordSessionMetrics() {
28 UMA_HISTOGRAM_CUSTOM_COUNTS("Session.ClosedTabCounts",
29 detached_web_state_counter_, 1, 200, 50);
30 UMA_HISTOGRAM_CUSTOM_COUNTS("Session.OpenedTabCounts",
31 activated_web_state_counter_, 1, 200, 50);
32 UMA_HISTOGRAM_CUSTOM_COUNTS("Session.NewTabCounts",
33 inserted_web_state_counter_, 1, 200, 50);
34 }
35
18 void WebStateListMetricsObserver::WebStateInsertedAt( 36 void WebStateListMetricsObserver::WebStateInsertedAt(
19 WebStateList* web_state_list, 37 WebStateList* web_state_list,
20 web::WebState* web_state, 38 web::WebState* web_state,
21 int index) { 39 int index) {
22 base::RecordAction(base::UserMetricsAction("MobileNewTabOpened")); 40 base::RecordAction(base::UserMetricsAction("MobileNewTabOpened"));
41 ++inserted_web_state_counter_;
23 } 42 }
24 43
25 void WebStateListMetricsObserver::WebStateReplacedAt( 44 void WebStateListMetricsObserver::WebStateReplacedAt(
26 WebStateList* web_state_list, 45 WebStateList* web_state_list,
27 web::WebState* old_web_state, 46 web::WebState* old_web_state,
28 web::WebState* new_web_state, 47 web::WebState* new_web_state,
29 int index) { 48 int index) {
30 // Record a tab clobber, since swapping tabs bypasses the Tab code that would 49 // Record a tab clobber, since swapping tabs bypasses the Tab code that would
31 // normally log clobbers. 50 // normally log clobbers.
32 base::RecordAction(base::UserMetricsAction("MobileTabClobbered")); 51 base::RecordAction(base::UserMetricsAction("MobileTabClobbered"));
33 } 52 }
34 53
35 void WebStateListMetricsObserver::WebStateDetachedAt( 54 void WebStateListMetricsObserver::WebStateDetachedAt(
36 WebStateList* web_state_list, 55 WebStateList* web_state_list,
37 web::WebState* web_state, 56 web::WebState* web_state,
38 int index) { 57 int index) {
39 base::RecordAction(base::UserMetricsAction("MobileTabClosed")); 58 base::RecordAction(base::UserMetricsAction("MobileTabClosed"));
59 ++detached_web_state_counter_;
40 } 60 }
61
62 void WebStateListMetricsObserver::WebStateActivatedAt(
63 WebStateList* web_state_list,
64 web::WebState* old_web_state,
65 web::WebState* new_web_state,
66 int active_index,
67 bool user_action) {
68 ++activated_web_state_counter_;
69 if (!user_action)
70 return;
71
72 base::RecordAction(base::UserMetricsAction("MobileTabSwitched"));
73 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698