OLD | NEW |
---|---|
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 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
393 if (parser_map.find(it.key()) == parser_map.end()) | 393 if (parser_map.find(it.key()) == parser_map.end()) |
394 return Status(kUnknownError, "unrecognized performance logging " | 394 return Status(kUnknownError, "unrecognized performance logging " |
395 "option: " + it.key()); | 395 "option: " + it.key()); |
396 Status status = parser_map[it.key()].Run(it.value(), capabilities); | 396 Status status = parser_map[it.key()].Run(it.value(), capabilities); |
397 if (status.IsError()) | 397 if (status.IsError()) |
398 return Status(kUnknownError, "cannot parse " + it.key(), status); | 398 return Status(kUnknownError, "cannot parse " + it.key(), status); |
399 } | 399 } |
400 return Status(kOk); | 400 return Status(kOk); |
401 } | 401 } |
402 | 402 |
403 Status ParseDevToolsEventsLoggingPrefs(const base::Value& option, | |
404 Capabilities* capabilities) { | |
stgao
2017/05/03 20:24:44
style nit: parameters not aligned.
em
2017/05/04 01:11:21
Done.
| |
405 const base::ListValue* devtools_events_logging_prefs = nullptr; | |
406 if (!option.GetAsList(&devtools_events_logging_prefs)) | |
407 return Status(kUnknownError, "must be a list"); | |
408 if (devtools_events_logging_prefs->empty()) | |
409 return Status(kUnknownError, "list must contain values"); | |
410 capabilities->devtools_events_logging_prefs.reset( | |
411 devtools_events_logging_prefs->DeepCopy()); | |
412 return Status(kOk); | |
413 } | |
414 | |
403 Status ParseWindowTypes(const base::Value& option, Capabilities* capabilities) { | 415 Status ParseWindowTypes(const base::Value& option, Capabilities* capabilities) { |
404 const base::ListValue* window_types = NULL; | 416 const base::ListValue* window_types = NULL; |
405 if (!option.GetAsList(&window_types)) | 417 if (!option.GetAsList(&window_types)) |
406 return Status(kUnknownError, "must be a list"); | 418 return Status(kUnknownError, "must be a list"); |
407 std::set<WebViewInfo::Type> window_types_tmp; | 419 std::set<WebViewInfo::Type> window_types_tmp; |
408 for (size_t i = 0; i < window_types->GetSize(); ++i) { | 420 for (size_t i = 0; i < window_types->GetSize(); ++i) { |
409 std::string window_type; | 421 std::string window_type; |
410 if (!window_types->GetString(i, &window_type)) { | 422 if (!window_types->GetString(i, &window_type)) { |
411 return Status(kUnknownError, "each window type must be a string"); | 423 return Status(kUnknownError, "each window type must be a string"); |
412 } | 424 } |
(...skipping 18 matching lines...) Expand all Loading... | |
431 bool is_remote = chrome_options->HasKey("debuggerAddress"); | 443 bool is_remote = chrome_options->HasKey("debuggerAddress"); |
432 | 444 |
433 std::map<std::string, Parser> parser_map; | 445 std::map<std::string, Parser> parser_map; |
434 // Ignore 'args', 'binary' and 'extensions' capabilities by default, since the | 446 // Ignore 'args', 'binary' and 'extensions' capabilities by default, since the |
435 // Java client always passes them. | 447 // Java client always passes them. |
436 parser_map["args"] = base::Bind(&IgnoreCapability); | 448 parser_map["args"] = base::Bind(&IgnoreCapability); |
437 parser_map["binary"] = base::Bind(&IgnoreCapability); | 449 parser_map["binary"] = base::Bind(&IgnoreCapability); |
438 parser_map["extensions"] = base::Bind(&IgnoreCapability); | 450 parser_map["extensions"] = base::Bind(&IgnoreCapability); |
439 | 451 |
440 parser_map["perfLoggingPrefs"] = base::Bind(&ParsePerfLoggingPrefs); | 452 parser_map["perfLoggingPrefs"] = base::Bind(&ParsePerfLoggingPrefs); |
453 parser_map["devToolsEventsToLog"] = base::Bind( | |
454 &ParseDevToolsEventsLoggingPrefs); | |
441 parser_map["windowTypes"] = base::Bind(&ParseWindowTypes); | 455 parser_map["windowTypes"] = base::Bind(&ParseWindowTypes); |
442 // Compliance is read when session is initialized and correct response is | 456 // Compliance is read when session is initialized and correct response is |
443 // sent if not parsed correctly. | 457 // sent if not parsed correctly. |
444 parser_map["w3c"] = base::Bind(&IgnoreCapability); | 458 parser_map["w3c"] = base::Bind(&IgnoreCapability); |
445 | 459 |
446 if (is_android) { | 460 if (is_android) { |
447 parser_map["androidActivity"] = | 461 parser_map["androidActivity"] = |
448 base::Bind(&ParseString, &capabilities->android_activity); | 462 base::Bind(&ParseString, &capabilities->android_activity); |
449 parser_map["androidDeviceSerial"] = | 463 parser_map["androidDeviceSerial"] = |
450 base::Bind(&ParseString, &capabilities->android_device_serial); | 464 base::Bind(&ParseString, &capabilities->android_device_serial); |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
659 LoggingPrefs::const_iterator iter = logging_prefs.find( | 673 LoggingPrefs::const_iterator iter = logging_prefs.find( |
660 WebDriverLog::kPerformanceType); | 674 WebDriverLog::kPerformanceType); |
661 if (iter == logging_prefs.end() || iter->second == Log::kOff) { | 675 if (iter == logging_prefs.end() || iter->second == Log::kOff) { |
662 const base::DictionaryValue* chrome_options = NULL; | 676 const base::DictionaryValue* chrome_options = NULL; |
663 if (desired_caps.GetDictionary("chromeOptions", &chrome_options) && | 677 if (desired_caps.GetDictionary("chromeOptions", &chrome_options) && |
664 chrome_options->HasKey("perfLoggingPrefs")) { | 678 chrome_options->HasKey("perfLoggingPrefs")) { |
665 return Status(kUnknownError, "perfLoggingPrefs specified, " | 679 return Status(kUnknownError, "perfLoggingPrefs specified, " |
666 "but performance logging was not enabled"); | 680 "but performance logging was not enabled"); |
667 } | 681 } |
668 } | 682 } |
683 LoggingPrefs::const_iterator dt_events_logging_iter = logging_prefs.find( | |
684 WebDriverLog::kDevToolsType); | |
685 if (dt_events_logging_iter == logging_prefs.end() | |
686 || dt_events_logging_iter->second == Log::kOff) { | |
687 const base::DictionaryValue* chrome_options = NULL; | |
688 if (desired_caps.GetDictionary("chromeOptions", &chrome_options) && | |
689 chrome_options->HasKey("devToolsEventsToLog")) { | |
690 return Status(kUnknownError, "devToolsEventsToLog specified, " | |
691 "but devtools events logging was not enabled"); | |
692 } | |
693 } | |
669 return Status(kOk); | 694 return Status(kOk); |
670 } | 695 } |
OLD | NEW |