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

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

Issue 2743013002: Add webdriver endpoint to send custom debugger commands (Closed)
Patch Set: Adding e2e test Created 3 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 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 if (parser_map.find(it.key()) == parser_map.end()) 392 if (parser_map.find(it.key()) == parser_map.end())
393 return Status(kUnknownError, "unrecognized performance logging " 393 return Status(kUnknownError, "unrecognized performance logging "
394 "option: " + it.key()); 394 "option: " + it.key());
395 Status status = parser_map[it.key()].Run(it.value(), capabilities); 395 Status status = parser_map[it.key()].Run(it.value(), capabilities);
396 if (status.IsError()) 396 if (status.IsError())
397 return Status(kUnknownError, "cannot parse " + it.key(), status); 397 return Status(kUnknownError, "cannot parse " + it.key(), status);
398 } 398 }
399 return Status(kOk); 399 return Status(kOk);
400 } 400 }
401 401
402 Status ParseDevToolsEventsLoggingPrefs(const base::Value& option,
403 Capabilities* capabilities) {
404 const base::ListValue* devtools_events_logging_prefs = nullptr;
405 if (!option.GetAsList(&devtools_events_logging_prefs))
406 return Status(kUnknownError, "must be a list");
407 if (devtools_events_logging_prefs->empty())
408 return Status(kUnknownError, "list must contain values");
409 capabilities->devtools_events_logging_prefs =
410 devtools_events_logging_prefs->DeepCopy();
411 return Status(kOk);
412 }
413
402 Status ParseWindowTypes(const base::Value& option, Capabilities* capabilities) { 414 Status ParseWindowTypes(const base::Value& option, Capabilities* capabilities) {
403 const base::ListValue* window_types = NULL; 415 const base::ListValue* window_types = NULL;
404 if (!option.GetAsList(&window_types)) 416 if (!option.GetAsList(&window_types))
405 return Status(kUnknownError, "must be a list"); 417 return Status(kUnknownError, "must be a list");
406 std::set<WebViewInfo::Type> window_types_tmp; 418 std::set<WebViewInfo::Type> window_types_tmp;
407 for (size_t i = 0; i < window_types->GetSize(); ++i) { 419 for (size_t i = 0; i < window_types->GetSize(); ++i) {
408 std::string window_type; 420 std::string window_type;
409 if (!window_types->GetString(i, &window_type)) { 421 if (!window_types->GetString(i, &window_type)) {
410 return Status(kUnknownError, "each window type must be a string"); 422 return Status(kUnknownError, "each window type must be a string");
411 } 423 }
(...skipping 18 matching lines...) Expand all
430 bool is_remote = chrome_options->HasKey("debuggerAddress"); 442 bool is_remote = chrome_options->HasKey("debuggerAddress");
431 443
432 std::map<std::string, Parser> parser_map; 444 std::map<std::string, Parser> parser_map;
433 // Ignore 'args', 'binary' and 'extensions' capabilities by default, since the 445 // Ignore 'args', 'binary' and 'extensions' capabilities by default, since the
434 // Java client always passes them. 446 // Java client always passes them.
435 parser_map["args"] = base::Bind(&IgnoreCapability); 447 parser_map["args"] = base::Bind(&IgnoreCapability);
436 parser_map["binary"] = base::Bind(&IgnoreCapability); 448 parser_map["binary"] = base::Bind(&IgnoreCapability);
437 parser_map["extensions"] = base::Bind(&IgnoreCapability); 449 parser_map["extensions"] = base::Bind(&IgnoreCapability);
438 450
439 parser_map["perfLoggingPrefs"] = base::Bind(&ParsePerfLoggingPrefs); 451 parser_map["perfLoggingPrefs"] = base::Bind(&ParsePerfLoggingPrefs);
452 parser_map["devToolsEventsToLog"] = base::Bind(
453 &ParseDevToolsEventsLoggingPrefs);
440 parser_map["windowTypes"] = base::Bind(&ParseWindowTypes); 454 parser_map["windowTypes"] = base::Bind(&ParseWindowTypes);
441 // Compliance is read when session is initialized and correct response is 455 // Compliance is read when session is initialized and correct response is
442 // sent if not parsed correctly. 456 // sent if not parsed correctly.
443 parser_map["w3c"] = base::Bind(&IgnoreCapability); 457 parser_map["w3c"] = base::Bind(&IgnoreCapability);
444 458
445 if (is_android) { 459 if (is_android) {
446 parser_map["androidActivity"] = 460 parser_map["androidActivity"] =
447 base::Bind(&ParseString, &capabilities->android_activity); 461 base::Bind(&ParseString, &capabilities->android_activity);
448 parser_map["androidDeviceSerial"] = 462 parser_map["androidDeviceSerial"] =
449 base::Bind(&ParseString, &capabilities->android_device_serial); 463 base::Bind(&ParseString, &capabilities->android_device_serial);
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 LoggingPrefs::const_iterator iter = logging_prefs.find( 669 LoggingPrefs::const_iterator iter = logging_prefs.find(
656 WebDriverLog::kPerformanceType); 670 WebDriverLog::kPerformanceType);
657 if (iter == logging_prefs.end() || iter->second == Log::kOff) { 671 if (iter == logging_prefs.end() || iter->second == Log::kOff) {
658 const base::DictionaryValue* chrome_options = NULL; 672 const base::DictionaryValue* chrome_options = NULL;
659 if (desired_caps.GetDictionary("chromeOptions", &chrome_options) && 673 if (desired_caps.GetDictionary("chromeOptions", &chrome_options) &&
660 chrome_options->HasKey("perfLoggingPrefs")) { 674 chrome_options->HasKey("perfLoggingPrefs")) {
661 return Status(kUnknownError, "perfLoggingPrefs specified, " 675 return Status(kUnknownError, "perfLoggingPrefs specified, "
662 "but performance logging was not enabled"); 676 "but performance logging was not enabled");
663 } 677 }
664 } 678 }
679 LoggingPrefs::const_iterator dt_events_logging_iter = logging_prefs.find(
680 WebDriverLog::kDevToolsType);
681 if (dt_events_logging_iter == logging_prefs.end()
682 || dt_events_logging_iter->second == Log::kOff) {
683 const base::DictionaryValue* chrome_options = NULL;
684 if (desired_caps.GetDictionary("chromeOptions", &chrome_options) &&
685 chrome_options->HasKey("devToolsEventsToLog")) {
686 return Status(kUnknownError, "devToolsEventsToLog specified, "
687 "but devtools events logging was not enabled");
688 }
689 }
665 return Status(kOk); 690 return Status(kOk);
666 } 691 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698