Chromium Code Reviews| Index: chrome/test/chromedriver/capabilities.cc |
| diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc |
| index a9bafc91ee785b5b2bdb63a6ea797df6b402e923..6dc3a73379f189c406382c1257785fd47e26495b 100644 |
| --- a/chrome/test/chromedriver/capabilities.cc |
| +++ b/chrome/test/chromedriver/capabilities.cc |
| @@ -400,6 +400,18 @@ Status ParsePerfLoggingPrefs(const base::Value& option, |
| return Status(kOk); |
| } |
| +Status ParseDevToolsEventsLoggingPrefs(const base::Value& option, |
| + Capabilities* capabilities) { |
|
stgao
2017/05/03 20:24:44
style nit: parameters not aligned.
em
2017/05/04 01:11:21
Done.
|
| + const base::ListValue* devtools_events_logging_prefs = nullptr; |
| + if (!option.GetAsList(&devtools_events_logging_prefs)) |
| + return Status(kUnknownError, "must be a list"); |
| + if (devtools_events_logging_prefs->empty()) |
| + return Status(kUnknownError, "list must contain values"); |
| + capabilities->devtools_events_logging_prefs.reset( |
| + devtools_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)) |
| @@ -438,6 +450,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. |
| @@ -666,5 +680,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); |
| } |