| Index: chrome/test/chromedriver/capabilities.cc
|
| diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc
|
| index a9bafc91ee785b5b2bdb63a6ea797df6b402e923..c10ce6003a60a17e916823fdcc02805a527f2502 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) {
|
| + 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);
|
| }
|
|
|