| 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 |