OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 #include "chrome/browser/net/websocket_experiment/websocket_experiment_runner.h" | 5 #include "chrome/browser/net/websocket_experiment/websocket_experiment_runner.h" |
6 | 6 |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/field_trial.h" | 8 #include "base/field_trial.h" |
9 #include "base/histogram.h" | 9 #include "base/histogram.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 static const int kWebSocketConnectDeadlineSec = 10; | 21 static const int kWebSocketConnectDeadlineSec = 10; |
22 static const int kWebSocketEchoDeadlineSec = 5; | 22 static const int kWebSocketEchoDeadlineSec = 5; |
23 static const int kWebSocketIdleSec = 1; | 23 static const int kWebSocketIdleSec = 1; |
24 static const int kWebSocketPushDeadlineSec = 1; | 24 static const int kWebSocketPushDeadlineSec = 1; |
25 static const int kWebSocketByeDeadlineSec = 10; | 25 static const int kWebSocketByeDeadlineSec = 10; |
26 static const int kWebSocketCloseDeadlineSec = 5; | 26 static const int kWebSocketCloseDeadlineSec = 5; |
27 static const int kWebSocketTimeSec = 10; | 27 static const int kWebSocketTimeSec = 10; |
28 static const int kTimeBucketCount = 50; | 28 static const int kTimeBucketCount = 50; |
29 | 29 |
30 // TODO(ukai): Use new thread-safe-reference-counted Histograms. | 30 // TODO(ukai): Use new thread-safe-reference-counted Histograms. |
31 #define UPDATE_HISTOGRAM(name, sample, min, max, bucket_count) do { \ | 31 #define UPDATE_HISTOGRAM(name, sample, min, max, bucket_count) do { \ |
32 switch (task_state_) { \ | 32 switch (task_state_) { \ |
33 case STATE_RUN_WS: \ | 33 case STATE_RUN_WS: \ |
34 { \ | 34 { \ |
35 static LinearHistogram counter( \ | 35 static scoped_refptr<Histogram> counter = \ |
36 "WebSocketExperiment.Basic." name, min, max, bucket_count); \ | 36 LinearHistogram::LinearHistogramFactoryGet(\ |
37 counter.SetFlags(kUmaTargetedHistogramFlag); \ | 37 "WebSocketExperiment.Basic." name, \ |
38 counter.Add(sample); \ | 38 min, max, bucket_count); \ |
| 39 counter->SetFlags(kUmaTargetedHistogramFlag); \ |
| 40 counter->Add(sample); \ |
39 } \ | 41 } \ |
40 break; \ | 42 break; \ |
41 case STATE_RUN_WSS: \ | 43 case STATE_RUN_WSS: \ |
42 { \ | 44 { \ |
43 static LinearHistogram counter( \ | 45 static scoped_refptr<Histogram> counter = \ |
44 "WebSocketExperiment.Secure." name, min, max, bucket_count); \ | 46 LinearHistogram::LinearHistogramFactoryGet(\ |
45 counter.SetFlags(kUmaTargetedHistogramFlag); \ | 47 "WebSocketExperiment.Secure." name, \ |
46 counter.Add(sample); \ | 48 min, max, bucket_count); \ |
| 49 counter->SetFlags(kUmaTargetedHistogramFlag); \ |
| 50 counter->Add(sample); \ |
47 } \ | 51 } \ |
48 break; \ | 52 break; \ |
49 case STATE_RUN_WS_NODEFAULT_PORT: \ | 53 case STATE_RUN_WS_NODEFAULT_PORT: \ |
50 { \ | 54 { \ |
51 static LinearHistogram counter( \ | 55 static scoped_refptr<Histogram> counter = \ |
52 "WebSocketExperiment.NoDefaultPort." name, \ | 56 LinearHistogram::LinearHistogramFactoryGet(\ |
53 min, max, bucket_count); \ | 57 "WebSocketExperiment.NoDefaultPort." name, \ |
54 counter.SetFlags(kUmaTargetedHistogramFlag); \ | 58 min, max, bucket_count); \ |
55 counter.Add(sample); \ | 59 counter->SetFlags(kUmaTargetedHistogramFlag); \ |
| 60 counter->Add(sample); \ |
56 } \ | 61 } \ |
57 break; \ | 62 break; \ |
58 default: \ | 63 default: \ |
59 NOTREACHED(); \ | 64 NOTREACHED(); \ |
60 break; \ | 65 break; \ |
61 } \ | 66 } \ |
62 } while (0) | 67 } while (0) |
63 | 68 |
64 #define UPDATE_HISTOGRAM_TIMES(name, sample, min, max, bucket_count) do { \ | 69 #define UPDATE_HISTOGRAM_TIMES(name, sample, min, max, bucket_count) do { \ |
65 switch (task_state_) { \ | 70 switch (task_state_) { \ |
66 case STATE_RUN_WS: \ | 71 case STATE_RUN_WS: \ |
67 { \ | 72 { \ |
68 static Histogram counter( \ | 73 static scoped_refptr<Histogram> counter = \ |
69 "WebSocketExperiment.Basic." name, min, max, bucket_count); \ | 74 Histogram::HistogramFactoryGet(\ |
70 counter.SetFlags(kUmaTargetedHistogramFlag); \ | 75 "WebSocketExperiment.Basic." name, \ |
71 counter.AddTime(sample); \ | 76 min, max, bucket_count); \ |
| 77 counter->SetFlags(kUmaTargetedHistogramFlag); \ |
| 78 counter->AddTime(sample); \ |
72 } \ | 79 } \ |
73 break; \ | 80 break; \ |
74 case STATE_RUN_WSS: \ | 81 case STATE_RUN_WSS: \ |
75 { \ | 82 { \ |
76 static Histogram counter( \ | 83 static scoped_refptr<Histogram> counter = \ |
77 "WebSocketExperiment.Secure." name, min, max, bucket_count); \ | 84 Histogram::HistogramFactoryGet(\ |
78 counter.SetFlags(kUmaTargetedHistogramFlag); \ | 85 "WebSocketExperiment.Secure." name, \ |
79 counter.AddTime(sample); \ | 86 min, max, bucket_count); \ |
| 87 counter->SetFlags(kUmaTargetedHistogramFlag); \ |
| 88 counter->AddTime(sample); \ |
80 } \ | 89 } \ |
81 break; \ | 90 break; \ |
82 case STATE_RUN_WS_NODEFAULT_PORT: \ | 91 case STATE_RUN_WS_NODEFAULT_PORT: \ |
83 { \ | 92 { \ |
84 static Histogram counter( \ | 93 static scoped_refptr<Histogram> counter = \ |
85 "WebSocketExperiment.NoDefaultPort." name, \ | 94 Histogram::HistogramFactoryGet(\ |
86 min, max, bucket_count); \ | 95 "WebSocketExperiment.NoDefaultPort." name, \ |
87 counter.SetFlags(kUmaTargetedHistogramFlag); \ | 96 min, max, bucket_count); \ |
88 counter.AddTime(sample); \ | 97 counter->SetFlags(kUmaTargetedHistogramFlag); \ |
| 98 counter->AddTime(sample); \ |
89 } \ | 99 } \ |
90 break; \ | 100 break; \ |
91 default: \ | 101 default: \ |
92 NOTREACHED(); \ | 102 NOTREACHED(); \ |
93 break; \ | 103 break; \ |
94 } \ | 104 } \ |
95 } while (0); | 105 } while (0); |
96 | 106 |
97 // Hold reference while experiment is running. | 107 // Hold reference while experiment is running. |
98 static scoped_refptr<WebSocketExperimentRunner> runner; | 108 static scoped_refptr<WebSocketExperimentRunner> runner; |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 WebSocketExperimentTask::STATE_WEBSOCKET_CLOSE_COMPLETE) | 320 WebSocketExperimentTask::STATE_WEBSOCKET_CLOSE_COMPLETE) |
311 return; | 321 return; |
312 | 322 |
313 UPDATE_HISTOGRAM_TIMES("WebSocketTotal", task_result.websocket_total, | 323 UPDATE_HISTOGRAM_TIMES("WebSocketTotal", task_result.websocket_total, |
314 base::TimeDelta::FromMilliseconds(1), | 324 base::TimeDelta::FromMilliseconds(1), |
315 base::TimeDelta::FromSeconds(kWebSocketTimeSec), | 325 base::TimeDelta::FromSeconds(kWebSocketTimeSec), |
316 kTimeBucketCount); | 326 kTimeBucketCount); |
317 } | 327 } |
318 | 328 |
319 } // namespace chrome_browser_net_websocket_experiment | 329 } // namespace chrome_browser_net_websocket_experiment |
OLD | NEW |