Chromium Code Reviews| Index: chrome/test/chromedriver/capabilities.cc |
| diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc |
| index 28d42ab5a9a46a4bb7717a9895f7255f3681afe1..7a57d4baf9c1cbc599f2fca4b6b42e7e419f4714 100644 |
| --- a/chrome/test/chromedriver/capabilities.cc |
| +++ b/chrome/test/chromedriver/capabilities.cc |
| @@ -399,6 +399,17 @@ Status ParsePerfLoggingPrefs(const base::Value& option, |
| return Status(kOk); |
| } |
| +Status ParseDevToolsEventsLoggingPrefs(const base::Value& option, |
| + Capabilities* capabilities) { |
| + const base::ListValue* dt_events_logging_prefs = NULL; |
|
samuong
2017/03/27 18:42:10
use nullptr instead of NULL
|
| + if (!option.GetAsList(&dt_events_logging_prefs)) |
| + return Status(kUnknownError, "must be a list"); |
| + if (dt_events_logging_prefs->empty()) |
| + return Status(kUnknownError, "list must contain values"); |
| + capabilities->dt_events_logging_prefs = dt_events_logging_prefs->DeepCopy(); |
| + return Status(kOk); |
| +} |
| + |
| Status ParseWindowTypes(const base::Value& option, Capabilities* capabilities) { |
| const base::ListValue* window_types = NULL; |
| if (!option.GetAsList(&window_types)) |
| @@ -437,6 +448,8 @@ Status ParseChromeOptions( |
| parser_map["extensions"] = base::Bind(&IgnoreCapability); |
| parser_map["perfLoggingPrefs"] = base::Bind(&ParsePerfLoggingPrefs); |
| + parser_map["devToolsEventsToLog"] = base::Bind( |
| + &ParseDevToolsEventsLoggingPrefs); |
| parser_map["windowTypes"] = base::Bind(&ParseWindowTypes); |
| // Compliance is read when session is initialized and correct response is |
| // sent if not parsed correctly. |
| @@ -662,5 +675,16 @@ Status Capabilities::Parse(const base::DictionaryValue& desired_caps) { |
| "but performance logging was not enabled"); |
| } |
| } |
| + LoggingPrefs::const_iterator dt_events_logging_iter = logging_prefs.find( |
| + WebDriverLog::kDevToolsType); |
| + if (dt_events_logging_iter == logging_prefs.end() |
| + || dt_events_logging_iter->second == Log::kOff) { |
| + const base::DictionaryValue* chrome_options = NULL; |
| + if (desired_caps.GetDictionary("chromeOptions", &chrome_options) && |
| + chrome_options->HasKey("devToolsEventsToLog")) { |
| + return Status(kUnknownError, "devToolsEventsToLog specified, " |
| + "but devtools events logging was not enabled"); |
| + } |
| + } |
| return Status(kOk); |
| } |