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

Side by Side Diff: chrome/test/chromedriver/server/chromedriver_server.cc

Issue 1548153002: Switch to standard integer types in chrome/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 <stddef.h>
6 #include <stdint.h>
5 #include <stdio.h> 7 #include <stdio.h>
6 #include <locale> 8 #include <locale>
7 #include <string> 9 #include <string>
8 #include <vector> 10 #include <vector>
9 11
10 #include "base/at_exit.h" 12 #include "base/at_exit.h"
11 #include "base/bind.h" 13 #include "base/bind.h"
12 #include "base/callback.h" 14 #include "base/callback.h"
13 #include "base/command_line.h" 15 #include "base/command_line.h"
14 #include "base/files/file_path.h" 16 #include "base/files/file_path.h"
15 #include "base/lazy_instance.h" 17 #include "base/lazy_instance.h"
16 #include "base/logging.h" 18 #include "base/logging.h"
19 #include "base/macros.h"
17 #include "base/memory/scoped_ptr.h" 20 #include "base/memory/scoped_ptr.h"
18 #include "base/message_loop/message_loop.h" 21 #include "base/message_loop/message_loop.h"
19 #include "base/run_loop.h" 22 #include "base/run_loop.h"
20 #include "base/strings/string_number_conversions.h" 23 #include "base/strings/string_number_conversions.h"
21 #include "base/strings/string_split.h" 24 #include "base/strings/string_split.h"
22 #include "base/strings/string_util.h" 25 #include "base/strings/string_util.h"
23 #include "base/strings/stringprintf.h" 26 #include "base/strings/stringprintf.h"
24 #include "base/synchronization/waitable_event.h" 27 #include "base/synchronization/waitable_event.h"
25 #include "base/thread_task_runner_handle.h" 28 #include "base/thread_task_runner_handle.h"
26 #include "base/threading/thread.h" 29 #include "base/threading/thread.h"
27 #include "base/threading/thread_local.h" 30 #include "base/threading/thread_local.h"
31 #include "build/build_config.h"
28 #include "chrome/test/chromedriver/logging.h" 32 #include "chrome/test/chromedriver/logging.h"
29 #include "chrome/test/chromedriver/net/port_server.h" 33 #include "chrome/test/chromedriver/net/port_server.h"
30 #include "chrome/test/chromedriver/server/http_handler.h" 34 #include "chrome/test/chromedriver/server/http_handler.h"
31 #include "chrome/test/chromedriver/version.h" 35 #include "chrome/test/chromedriver/version.h"
32 #include "net/base/ip_endpoint.h" 36 #include "net/base/ip_endpoint.h"
33 #include "net/base/net_errors.h" 37 #include "net/base/net_errors.h"
34 #include "net/server/http_server.h" 38 #include "net/server/http_server.h"
35 #include "net/server/http_server_request_info.h" 39 #include "net/server/http_server_request_info.h"
36 #include "net/server/http_server_response_info.h" 40 #include "net/server/http_server_response_info.h"
37 #include "net/socket/tcp_server_socket.h" 41 #include "net/socket/tcp_server_socket.h"
38 42
39 namespace { 43 namespace {
40 44
41 const char kLocalHostAddress[] = "127.0.0.1"; 45 const char kLocalHostAddress[] = "127.0.0.1";
42 const int kBufferSize = 100 * 1024 * 1024; // 100 MB 46 const int kBufferSize = 100 * 1024 * 1024; // 100 MB
43 47
44 typedef base::Callback< 48 typedef base::Callback<
45 void(const net::HttpServerRequestInfo&, const HttpResponseSenderFunc&)> 49 void(const net::HttpServerRequestInfo&, const HttpResponseSenderFunc&)>
46 HttpRequestHandlerFunc; 50 HttpRequestHandlerFunc;
47 51
48 class HttpServer : public net::HttpServer::Delegate { 52 class HttpServer : public net::HttpServer::Delegate {
49 public: 53 public:
50 explicit HttpServer(const HttpRequestHandlerFunc& handle_request_func) 54 explicit HttpServer(const HttpRequestHandlerFunc& handle_request_func)
51 : handle_request_func_(handle_request_func), 55 : handle_request_func_(handle_request_func),
52 weak_factory_(this) {} 56 weak_factory_(this) {}
53 57
54 ~HttpServer() override {} 58 ~HttpServer() override {}
55 59
56 bool Start(uint16 port, bool allow_remote) { 60 bool Start(uint16_t port, bool allow_remote) {
57 std::string binding_ip = kLocalHostAddress; 61 std::string binding_ip = kLocalHostAddress;
58 if (allow_remote) 62 if (allow_remote)
59 binding_ip = "0.0.0.0"; 63 binding_ip = "0.0.0.0";
60 scoped_ptr<net::ServerSocket> server_socket( 64 scoped_ptr<net::ServerSocket> server_socket(
61 new net::TCPServerSocket(NULL, net::NetLog::Source())); 65 new net::TCPServerSocket(NULL, net::NetLog::Source()));
62 server_socket->ListenWithAddressAndPort(binding_ip, port, 1); 66 server_socket->ListenWithAddressAndPort(binding_ip, port, 1);
63 server_.reset(new net::HttpServer(server_socket.Pass(), this)); 67 server_.reset(new net::HttpServer(server_socket.Pass(), this));
64 net::IPEndPoint address; 68 net::IPEndPoint address;
65 return server_->GetLocalAddress(&address) == net::OK; 69 return server_->GetLocalAddress(&address) == net::OK;
66 } 70 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 base::LazyInstance<base::ThreadLocalPointer<HttpServer> > 150 base::LazyInstance<base::ThreadLocalPointer<HttpServer> >
147 lazy_tls_server = LAZY_INSTANCE_INITIALIZER; 151 lazy_tls_server = LAZY_INSTANCE_INITIALIZER;
148 152
149 void StopServerOnIOThread() { 153 void StopServerOnIOThread() {
150 // Note, |server| may be NULL. 154 // Note, |server| may be NULL.
151 HttpServer* server = lazy_tls_server.Pointer()->Get(); 155 HttpServer* server = lazy_tls_server.Pointer()->Get();
152 lazy_tls_server.Pointer()->Set(NULL); 156 lazy_tls_server.Pointer()->Set(NULL);
153 delete server; 157 delete server;
154 } 158 }
155 159
156 void StartServerOnIOThread(uint16 port, 160 void StartServerOnIOThread(uint16_t port,
157 bool allow_remote, 161 bool allow_remote,
158 const HttpRequestHandlerFunc& handle_request_func) { 162 const HttpRequestHandlerFunc& handle_request_func) {
159 scoped_ptr<HttpServer> temp_server(new HttpServer(handle_request_func)); 163 scoped_ptr<HttpServer> temp_server(new HttpServer(handle_request_func));
160 if (!temp_server->Start(port, allow_remote)) { 164 if (!temp_server->Start(port, allow_remote)) {
161 printf("Port not available. Exiting...\n"); 165 printf("Port not available. Exiting...\n");
162 exit(1); 166 exit(1);
163 } 167 }
164 lazy_tls_server.Pointer()->Set(temp_server.release()); 168 lazy_tls_server.Pointer()->Set(temp_server.release());
165 } 169 }
166 170
167 void RunServer(uint16 port, 171 void RunServer(uint16_t port,
168 bool allow_remote, 172 bool allow_remote,
169 const std::vector<std::string>& whitelisted_ips, 173 const std::vector<std::string>& whitelisted_ips,
170 const std::string& url_base, 174 const std::string& url_base,
171 int adb_port, 175 int adb_port,
172 scoped_ptr<PortServer> port_server) { 176 scoped_ptr<PortServer> port_server) {
173 base::Thread io_thread("ChromeDriver IO"); 177 base::Thread io_thread("ChromeDriver IO");
174 CHECK(io_thread.StartWithOptions( 178 CHECK(io_thread.StartWithOptions(
175 base::Thread::Options(base::MessageLoop::TYPE_IO, 0))); 179 base::Thread::Options(base::MessageLoop::TYPE_IO, 0)));
176 180
177 base::MessageLoop cmd_loop; 181 base::MessageLoop cmd_loop;
(...skipping 27 matching lines...) Expand all
205 base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); 209 base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
206 210
207 #if defined(OS_LINUX) 211 #if defined(OS_LINUX)
208 // Select the locale from the environment by passing an empty string instead 212 // Select the locale from the environment by passing an empty string instead
209 // of the default "C" locale. This is particularly needed for the keycode 213 // of the default "C" locale. This is particularly needed for the keycode
210 // conversion code to work. 214 // conversion code to work.
211 setlocale(LC_ALL, ""); 215 setlocale(LC_ALL, "");
212 #endif 216 #endif
213 217
214 // Parse command line flags. 218 // Parse command line flags.
215 uint16 port = 9515; 219 uint16_t port = 9515;
216 int adb_port = 5037; 220 int adb_port = 5037;
217 bool allow_remote = false; 221 bool allow_remote = false;
218 std::vector<std::string> whitelisted_ips; 222 std::vector<std::string> whitelisted_ips;
219 std::string url_base; 223 std::string url_base;
220 scoped_ptr<PortServer> port_server; 224 scoped_ptr<PortServer> port_server;
221 if (cmd_line->HasSwitch("h") || cmd_line->HasSwitch("help")) { 225 if (cmd_line->HasSwitch("h") || cmd_line->HasSwitch("help")) {
222 std::string options; 226 std::string options;
223 const char* const kOptionAndDescriptions[] = { 227 const char* const kOptionAndDescriptions[] = {
224 "port=PORT", "port to listen on", 228 "port=PORT", "port to listen on",
225 "adb-port=PORT", "adb server port", 229 "adb-port=PORT", "adb server port",
(...skipping 20 matching lines...) Expand all
246 return 0; 250 return 0;
247 } 251 }
248 if (cmd_line->HasSwitch("port")) { 252 if (cmd_line->HasSwitch("port")) {
249 int cmd_line_port; 253 int cmd_line_port;
250 if (!base::StringToInt(cmd_line->GetSwitchValueASCII("port"), 254 if (!base::StringToInt(cmd_line->GetSwitchValueASCII("port"),
251 &cmd_line_port) || 255 &cmd_line_port) ||
252 cmd_line_port < 0 || cmd_line_port > 65535) { 256 cmd_line_port < 0 || cmd_line_port > 65535) {
253 printf("Invalid port. Exiting...\n"); 257 printf("Invalid port. Exiting...\n");
254 return 1; 258 return 1;
255 } 259 }
256 port = static_cast<uint16>(cmd_line_port); 260 port = static_cast<uint16_t>(cmd_line_port);
257 } 261 }
258 if (cmd_line->HasSwitch("adb-port")) { 262 if (cmd_line->HasSwitch("adb-port")) {
259 if (!base::StringToInt(cmd_line->GetSwitchValueASCII("adb-port"), 263 if (!base::StringToInt(cmd_line->GetSwitchValueASCII("adb-port"),
260 &adb_port)) { 264 &adb_port)) {
261 printf("Invalid adb-port. Exiting...\n"); 265 printf("Invalid adb-port. Exiting...\n");
262 return 1; 266 return 1;
263 } 267 }
264 } 268 }
265 if (cmd_line->HasSwitch("port-server")) { 269 if (cmd_line->HasSwitch("port-server")) {
266 #if defined(OS_LINUX) 270 #if defined(OS_LINUX)
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 } 308 }
305 309
306 if (!InitLogging()) { 310 if (!InitLogging()) {
307 printf("Unable to initialize logging. Exiting...\n"); 311 printf("Unable to initialize logging. Exiting...\n");
308 return 1; 312 return 1;
309 } 313 }
310 RunServer(port, allow_remote, whitelisted_ips, 314 RunServer(port, allow_remote, whitelisted_ips,
311 url_base, adb_port, port_server.Pass()); 315 url_base, adb_port, port_server.Pass());
312 return 0; 316 return 0;
313 } 317 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/performance_logger_unittest.cc ('k') | chrome/test/chromedriver/server/http_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698