| 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/histogram.h" | 9 #include "base/histogram.h" |
| 9 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| 10 #include "base/task.h" | 11 #include "base/task.h" |
| 11 #include "chrome/browser/chrome_thread.h" | 12 #include "chrome/browser/chrome_thread.h" |
| 12 #include "net/base/net_errors.h" | 13 #include "net/base/net_errors.h" |
| 13 | 14 |
| 14 namespace chrome_browser_net_websocket_experiment { | 15 namespace chrome_browser_net_websocket_experiment { |
| 15 | 16 |
| 16 static const char *kExperimentHost = "websocket-experiment.chromium.org"; | 17 static const char *kExperimentHost = "websocket-experiment.chromium.org"; |
| 17 static const int kAlternativePort = 61985; | 18 static const int kAlternativePort = 61985; |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 break; \ | 93 break; \ |
| 93 } \ | 94 } \ |
| 94 } while (0); | 95 } while (0); |
| 95 | 96 |
| 96 // Hold reference while experiment is running. | 97 // Hold reference while experiment is running. |
| 97 static scoped_refptr<WebSocketExperimentRunner> runner; | 98 static scoped_refptr<WebSocketExperimentRunner> runner; |
| 98 | 99 |
| 99 /* static */ | 100 /* static */ |
| 100 void WebSocketExperimentRunner::Start() { | 101 void WebSocketExperimentRunner::Start() { |
| 101 DCHECK(!runner.get()); | 102 DCHECK(!runner.get()); |
| 103 |
| 104 scoped_refptr<FieldTrial> trial = new FieldTrial("WebSocketExperiment", 1000); |
| 105 trial->AppendGroup("_active", 5); // 0.5% in _active group. |
| 106 |
| 107 if (trial->group() == FieldTrial::kNotParticipating) |
| 108 return; |
| 109 |
| 102 runner = new WebSocketExperimentRunner; | 110 runner = new WebSocketExperimentRunner; |
| 103 runner->Run(); | 111 runner->Run(); |
| 104 } | 112 } |
| 105 | 113 |
| 106 /* static */ | 114 /* static */ |
| 107 void WebSocketExperimentRunner::Stop() { | 115 void WebSocketExperimentRunner::Stop() { |
| 108 if (runner.get()) | 116 if (runner.get()) |
| 109 runner->Cancel(); | 117 runner->Cancel(); |
| 110 runner = NULL; | 118 runner = NULL; |
| 111 } | 119 } |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 WebSocketExperimentTask::STATE_WEBSOCKET_CLOSE_COMPLETE) | 310 WebSocketExperimentTask::STATE_WEBSOCKET_CLOSE_COMPLETE) |
| 303 return; | 311 return; |
| 304 | 312 |
| 305 UPDATE_HISTOGRAM_TIMES("WebSocketTotal", task_result.websocket_total, | 313 UPDATE_HISTOGRAM_TIMES("WebSocketTotal", task_result.websocket_total, |
| 306 base::TimeDelta::FromMilliseconds(1), | 314 base::TimeDelta::FromMilliseconds(1), |
| 307 base::TimeDelta::FromSeconds(kWebSocketTimeSec), | 315 base::TimeDelta::FromSeconds(kWebSocketTimeSec), |
| 308 kTimeBucketCount); | 316 kTimeBucketCount); |
| 309 } | 317 } |
| 310 | 318 |
| 311 } // namespace chrome_browser_net_websocket_experiment | 319 } // namespace chrome_browser_net_websocket_experiment |
| OLD | NEW |