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

Side by Side Diff: chrome/browser/net/websocket_experiment/websocket_experiment_runner.h

Issue 7567001: WebSocket: Remove obsolete experiments related files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // Run WebSocket live experiment to collect metrics about WebSocket
6 // availability in the real Internet.
7 // It tries to open WebSocket connection to websocket-experiment.chromium.org,
8 // send/receive some static content over the connection, and see how it works
9 // well.
10 // It must be started only if the user permits metrics reporting with the
11 // checkbox in the prefs.
12 // For more detail what the experiment is, see websocket_experiment_task.h.
13
14 #ifndef CHROME_BROWSER_NET_WEBSOCKET_EXPERIMENT_WEBSOCKET_EXPERIMENT_RUNNER_H_
15 #define CHROME_BROWSER_NET_WEBSOCKET_EXPERIMENT_WEBSOCKET_EXPERIMENT_RUNNER_H_
16 #pragma once
17
18 #include "base/basictypes.h"
19 #include "base/memory/linked_ptr.h"
20 #include "base/memory/ref_counted.h"
21 #include "base/memory/scoped_ptr.h"
22 #include "chrome/browser/net/websocket_experiment/websocket_experiment_task.h"
23 #include "net/base/completion_callback.h"
24
25 namespace chrome_browser_net_websocket_experiment {
26
27 class WebSocketExperimentRunner
28 : public base::RefCountedThreadSafe<WebSocketExperimentRunner> {
29 public:
30 class Config {
31 public:
32 Config()
33 : initial_delay_ms(0),
34 next_delay_ms(0) {}
35
36 int64 initial_delay_ms;
37 int64 next_delay_ms;
38 WebSocketExperimentTask::Config ws_config[6];
39 };
40 static void Start();
41 static void Stop();
42
43 void Run();
44 void Cancel();
45
46 private:
47 enum State {
48 STATE_NONE,
49 STATE_IDLE,
50 STATE_RUN_WS,
51 STATE_RUN_WSS,
52 STATE_RUN_WS_NODEFAULT_PORT,
53 STATE_RUN_WS_DRAFT75,
54 STATE_RUN_WSS_DRAFT75,
55 STATE_RUN_WS_NODEFAULT_PORT_DRAFT75,
56 NUM_STATES,
57 };
58 WebSocketExperimentRunner();
59 virtual ~WebSocketExperimentRunner();
60 friend class base::RefCountedThreadSafe<WebSocketExperimentRunner>;
61
62 void InitConfig();
63 void DoLoop();
64 void OnTaskCompleted(int result);
65 void UpdateTaskResultHistogram(const WebSocketExperimentTask* task);
66
67 Config config_;
68 State next_state_;
69 State task_state_;
70 scoped_ptr<WebSocketExperimentTask> task_;
71 net::CompletionCallbackImpl<WebSocketExperimentRunner> task_callback_;
72
73 DISALLOW_COPY_AND_ASSIGN(WebSocketExperimentRunner);
74 };
75
76 } // namespace chrome_browser_net_websocket_experiment
77
78 #endif // CHROME_BROWSER_NET_WEBSOCKET_EXPERIMENT_WEBSOCKET_EXPERIMENT_RUNNER_H _
OLDNEW
« no previous file with comments | « chrome/browser/net/websocket_experiment/OWNERS ('k') | chrome/browser/net/websocket_experiment/websocket_experiment_runner.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698