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

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

Issue 251933005: [ChromeDriver] Support mobile emulation on desktop Chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 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 "chrome/test/chromedriver/capabilities.h" 5 #include "chrome/test/chromedriver/capabilities.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 Status IgnoreCapability(const base::Value& option, Capabilities* capabilities) { 77 Status IgnoreCapability(const base::Value& option, Capabilities* capabilities) {
78 return Status(kOk); 78 return Status(kOk);
79 } 79 }
80 80
81 Status ParseLogPath(const base::Value& option, Capabilities* capabilities) { 81 Status ParseLogPath(const base::Value& option, Capabilities* capabilities) {
82 if (!option.GetAsString(&capabilities->log_path)) 82 if (!option.GetAsString(&capabilities->log_path))
83 return Status(kUnknownError, "must be a string"); 83 return Status(kUnknownError, "must be a string");
84 return Status(kOk); 84 return Status(kOk);
85 } 85 }
86 86
87 Status ParseDeviceMetrics(const base::Value& option,
88 Capabilities* capabilities) {
89 const base::DictionaryValue* metrics;
90 if (!option.GetAsDictionary(&metrics))
91 return Status(kUnknownError, "must be a dictionary");
92
93 if (!metrics->GetInteger("width", &(capabilities->device_metrics.width)) ||
stgao 2014/04/30 03:32:55 Code in chromedriver seems not to use "()" to wrap
94 !metrics->GetInteger("height", &(capabilities->device_metrics.height)) ||
95 !metrics->GetDouble("pixel_ratio", &(capabilities->device_metrics.device_s cale_factor)))
stgao 2014/04/30 03:32:55 over 80 chars.
96 return Status(kUnknownError, "missing or invalid 'metrics'");
97
98 capabilities->device_metrics.emulate_viewport = false;
99 capabilities->device_metrics.fit_window = true;
100 capabilities->device_metrics.text_autosizing = true;
101 capabilities->device_metrics.font_scale_factor = 1;
102
103 return Status(kOk);
104 }
105
87 Status ParseSwitches(const base::Value& option, 106 Status ParseSwitches(const base::Value& option,
88 Capabilities* capabilities) { 107 Capabilities* capabilities) {
89 const base::ListValue* switches_list = NULL; 108 const base::ListValue* switches_list = NULL;
90 if (!option.GetAsList(&switches_list)) 109 if (!option.GetAsList(&switches_list))
91 return Status(kUnknownError, "must be a list"); 110 return Status(kUnknownError, "must be a list");
92 for (size_t i = 0; i < switches_list->GetSize(); ++i) { 111 for (size_t i = 0; i < switches_list->GetSize(); ++i) {
93 std::string arg_string; 112 std::string arg_string;
94 if (!switches_list->GetString(i, &arg_string)) 113 if (!switches_list->GetString(i, &arg_string))
95 return Status(kUnknownError, "each argument must be a string"); 114 return Status(kUnknownError, "each argument must be a string");
96 capabilities->switches.SetUnparsedSwitch(arg_string); 115 capabilities->switches.SetUnparsedSwitch(arg_string);
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 parser_map["androidUseRunningApp"] = 284 parser_map["androidUseRunningApp"] =
266 base::Bind(&ParseBoolean, &capabilities->android_use_running_app); 285 base::Bind(&ParseBoolean, &capabilities->android_use_running_app);
267 parser_map["args"] = base::Bind(&ParseSwitches); 286 parser_map["args"] = base::Bind(&ParseSwitches);
268 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync"); 287 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync");
269 } else if (is_existing) { 288 } else if (is_existing) {
270 parser_map["debuggerAddress"] = base::Bind(&ParseUseExistingBrowser); 289 parser_map["debuggerAddress"] = base::Bind(&ParseUseExistingBrowser);
271 } else { 290 } else {
272 parser_map["args"] = base::Bind(&ParseSwitches); 291 parser_map["args"] = base::Bind(&ParseSwitches);
273 parser_map["binary"] = base::Bind(&ParseFilePath, &capabilities->binary); 292 parser_map["binary"] = base::Bind(&ParseFilePath, &capabilities->binary);
274 parser_map["detach"] = base::Bind(&ParseBoolean, &capabilities->detach); 293 parser_map["detach"] = base::Bind(&ParseBoolean, &capabilities->detach);
294 parser_map["deviceMetrics"] =
295 base::Bind(&ParseDeviceMetrics);
275 parser_map["excludeSwitches"] = base::Bind(&ParseExcludeSwitches); 296 parser_map["excludeSwitches"] = base::Bind(&ParseExcludeSwitches);
276 parser_map["extensions"] = base::Bind(&ParseExtensions); 297 parser_map["extensions"] = base::Bind(&ParseExtensions);
277 parser_map["forceDevToolsScreenshot"] = base::Bind( 298 parser_map["forceDevToolsScreenshot"] = base::Bind(
278 &ParseBoolean, &capabilities->force_devtools_screenshot); 299 &ParseBoolean, &capabilities->force_devtools_screenshot);
279 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync"); 300 parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync");
280 parser_map["localState"] = 301 parser_map["localState"] =
281 base::Bind(&ParseDict, &capabilities->local_state); 302 base::Bind(&ParseDict, &capabilities->local_state);
282 parser_map["logPath"] = base::Bind(&ParseLogPath); 303 parser_map["logPath"] = base::Bind(&ParseLogPath);
283 parser_map["minidumpPath"] = 304 parser_map["minidumpPath"] =
284 base::Bind(&ParseString, &capabilities->minidump_path); 305 base::Bind(&ParseString, &capabilities->minidump_path);
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 if (desired_caps.Get(it->first, &capability)) { 454 if (desired_caps.Get(it->first, &capability)) {
434 Status status = it->second.Run(*capability, this); 455 Status status = it->second.Run(*capability, this);
435 if (status.IsError()) { 456 if (status.IsError()) {
436 return Status( 457 return Status(
437 kUnknownError, "cannot parse capability: " + it->first, status); 458 kUnknownError, "cannot parse capability: " + it->first, status);
438 } 459 }
439 } 460 }
440 } 461 }
441 return Status(kOk); 462 return Status(kOk);
442 } 463 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698