OLD | NEW |
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 } |
OLD | NEW |