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

Side by Side Diff: chrome/test/chromedriver/session_commands.cc

Issue 127143003: [chromedriver] Reuse forwarded adb ports. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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
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 "chrome/test/chromedriver/session_commands.h" 5 #include "chrome/test/chromedriver/session_commands.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 return true; 50 return true;
51 } 51 }
52 52
53 } // namespace 53 } // namespace
54 54
55 InitSessionParams::InitSessionParams( 55 InitSessionParams::InitSessionParams(
56 scoped_refptr<URLRequestContextGetter> context_getter, 56 scoped_refptr<URLRequestContextGetter> context_getter,
57 const SyncWebSocketFactory& socket_factory, 57 const SyncWebSocketFactory& socket_factory,
58 DeviceManager* device_manager, 58 DeviceManager* device_manager,
59 PortServer* port_server, 59 PortServer* port_server,
60 PortManager* port_manager) 60 PortManager* port_manager,
61 PortManager* port_manager_android)
61 : context_getter(context_getter), 62 : context_getter(context_getter),
62 socket_factory(socket_factory), 63 socket_factory(socket_factory),
63 device_manager(device_manager), 64 device_manager(device_manager),
64 port_server(port_server), 65 port_server(port_server),
65 port_manager(port_manager) {} 66 port_manager(port_manager),
67 port_manager_android(port_manager_android) {}
66 68
67 InitSessionParams::~InitSessionParams() {} 69 InitSessionParams::~InitSessionParams() {}
68 70
69 namespace { 71 namespace {
70 72
71 scoped_ptr<base::DictionaryValue> CreateCapabilities(Chrome* chrome) { 73 scoped_ptr<base::DictionaryValue> CreateCapabilities(Chrome* chrome) {
72 scoped_ptr<base::DictionaryValue> caps(new base::DictionaryValue()); 74 scoped_ptr<base::DictionaryValue> caps(new base::DictionaryValue());
73 caps->SetString("browserName", "chrome"); 75 caps->SetString("browserName", "chrome");
74 caps->SetString("version", chrome->GetVersion()); 76 caps->SetString("version", chrome->GetVersion());
75 caps->SetString("chrome.chromedriverVersion", kChromeDriverVersion); 77 caps->SetString("chrome.chromedriverVersion", kChromeDriverVersion);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 &session->devtools_logs, 129 &session->devtools_logs,
128 &devtools_event_listeners); 130 &devtools_event_listeners);
129 if (status.IsError()) 131 if (status.IsError())
130 return status; 132 return status;
131 133
132 status = LaunchChrome(bound_params.context_getter.get(), 134 status = LaunchChrome(bound_params.context_getter.get(),
133 bound_params.socket_factory, 135 bound_params.socket_factory,
134 bound_params.device_manager, 136 bound_params.device_manager,
135 bound_params.port_server, 137 bound_params.port_server,
136 bound_params.port_manager, 138 bound_params.port_manager,
139 bound_params.port_manager_android,
137 capabilities, 140 capabilities,
138 devtools_event_listeners, 141 devtools_event_listeners,
139 &session->chrome); 142 &session->chrome);
140 if (status.IsError()) 143 if (status.IsError())
141 return status; 144 return status;
142 145
143 std::list<std::string> web_view_ids; 146 std::list<std::string> web_view_ids;
144 status = session->chrome->GetWebViewIds(&web_view_ids); 147 status = session->chrome->GetWebViewIds(&web_view_ids);
145 if (status.IsError() || web_view_ids.empty()) { 148 if (status.IsError() || web_view_ids.empty()) {
146 return status.IsError() ? status : 149 return status.IsError() ? status :
147 Status(kUnknownError, "unable to discover open window in chrome"); 150 Status(kUnknownError, "unable to discover open window in chrome");
148 } 151 }
149 152
150 session->window = web_view_ids.front(); 153 session->window = web_view_ids.front();
151 session->detach = capabilities.detach; 154 session->detach = capabilities.detach;
152 session->force_devtools_screenshot = capabilities.force_devtools_screenshot; 155 session->force_devtools_screenshot = capabilities.force_devtools_screenshot;
153 session->capabilities = CreateCapabilities(session->chrome.get()); 156 session->capabilities = CreateCapabilities(session->chrome.get());
154 value->reset(session->capabilities->DeepCopy()); 157 value->reset(session->capabilities->DeepCopy());
155 return Status(kOk); 158 return Status(kOk);
156 } 159 }
157 160
158 } // namespace 161 } // namespace
159 162
160 Status ExecuteInitSession( 163 Status ExecuteInitSession(
161 const InitSessionParams& bound_params, 164 const InitSessionParams& bound_params,
162 Session* session, 165 Session* session,
163 const base::DictionaryValue& params, 166 const base::DictionaryValue& params,
164 scoped_ptr<base::Value>* value) { 167 scoped_ptr<base::Value>* value) {
165 Status status = InitSessionHelper(bound_params, session, params, value); 168 Status status = InitSessionHelper(bound_params, session, params, value);
166 if (status.IsError()) 169 if (status.IsError()) {
167 session->quit = true; 170 session->quit = true;
171 if (session->chrome != NULL)
172 session->chrome->Quit();
173 }
168 return status; 174 return status;
169 } 175 }
170 176
171 Status ExecuteQuit( 177 Status ExecuteQuit(
172 bool allow_detach, 178 bool allow_detach,
173 Session* session, 179 Session* session,
174 const base::DictionaryValue& params, 180 const base::DictionaryValue& params,
175 scoped_ptr<base::Value>* value) { 181 scoped_ptr<base::Value>* value) {
176 session->quit = true; 182 session->quit = true;
177 if (allow_detach && session->detach) 183 if (allow_detach && session->detach)
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 } 606 }
601 std::string error_msg; 607 std::string error_msg;
602 base::FilePath upload; 608 base::FilePath upload;
603 Status status = UnzipSoleFile(upload_dir, zip_data, &upload); 609 Status status = UnzipSoleFile(upload_dir, zip_data, &upload);
604 if (status.IsError()) 610 if (status.IsError())
605 return Status(kUnknownError, "unable to unzip 'file'", status); 611 return Status(kUnknownError, "unable to unzip 'file'", status);
606 612
607 value->reset(new base::StringValue(upload.value())); 613 value->reset(new base::StringValue(upload.value()));
608 return Status(kOk); 614 return Status(kOk);
609 } 615 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698