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

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

Issue 2743013002: Add webdriver endpoint to send custom debugger commands (Closed)
Patch Set: Fixing indentation Created 3 years, 7 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 #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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698