Index: chrome/test/chromedriver/capabilities.cc |
diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc |
index 188074cb415e46aad3f4c4123b581f16bb4fb852..86d897e1c7b88f5f81b9f892a62febb06823c62d 100644 |
--- a/chrome/test/chromedriver/capabilities.cc |
+++ b/chrome/test/chromedriver/capabilities.cc |
@@ -9,6 +9,7 @@ |
#include "base/bind.h" |
#include "base/callback.h" |
#include "base/json/string_escape.h" |
+#include "base/logging.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_split.h" |
#include "base/strings/string_tokenizer.h" |
@@ -16,8 +17,8 @@ |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/values.h" |
-#include "chrome/test/chromedriver/chrome/log.h" |
#include "chrome/test/chromedriver/chrome/status.h" |
+#include "chrome/test/chromedriver/logging.h" |
#include "net/base/net_util.h" |
namespace { |
@@ -68,13 +69,10 @@ Status ParseDict(scoped_ptr<base::DictionaryValue>* to_set, |
} |
Status IgnoreDeprecatedOption( |
- Log* log, |
const char* option_name, |
const base::Value& option, |
Capabilities* capabilities) { |
- log->AddEntry(Log::kWarning, |
- base::StringPrintf("deprecated chrome option is ignored: '%s'", |
- option_name)); |
+ LOG(WARNING) << "Deprecated chrome option is ignored: " << option_name; |
return Status(kOk); |
} |
@@ -223,18 +221,25 @@ Status ParseUseExistingBrowser(const base::Value& option, |
Status ParseLoggingPrefs(const base::Value& option, |
Capabilities* capabilities) { |
- const base::DictionaryValue* logging_prefs_dict = NULL; |
- if (!option.GetAsDictionary(&logging_prefs_dict)) |
- return Status(kUnknownError, "must be a dictionary"); |
- |
- // TODO(klm): verify log types. |
- // TODO(klm): verify log levels. |
- capabilities->logging_prefs.reset(logging_prefs_dict->DeepCopy()); |
+ const base::DictionaryValue* logging_prefs = NULL; |
+ if (!option.GetAsDictionary(&logging_prefs)) |
+ return Status(kUnknownError, "capability must be a dictionary"); |
kkania
2013/09/04 23:39:30
revert
kkania
2013/09/05 15:15:11
Done.
|
+ |
+ for (base::DictionaryValue::Iterator pref(*logging_prefs); |
+ !pref.IsAtEnd(); pref.Advance()) { |
+ std::string type = pref.key(); |
+ Log::Level level; |
+ std::string level_name; |
+ if (!pref.value().GetAsString(&level_name) || |
+ !WebDriverLog::NameToLevel(level_name, &level)) { |
+ return Status(kUnknownError, "invalid log level for '" + type + "' log"); |
+ } |
+ capabilities->logging_prefs.insert(std::make_pair(type, level)); |
+ } |
return Status(kOk); |
} |
Status ParseChromeOptions( |
- Log* log, |
const base::Value& capability, |
Capabilities* capabilities) { |
const base::DictionaryValue* chrome_options = NULL; |
@@ -270,8 +275,7 @@ Status ParseChromeOptions( |
parser_map["extensions"] = base::Bind(&ParseExtensions); |
parser_map["forceDevToolsScreenshot"] = base::Bind( |
&ParseBoolean, &capabilities->force_devtools_screenshot); |
- parser_map["loadAsync"] = |
- base::Bind(&IgnoreDeprecatedOption, log, "loadAsync"); |
+ parser_map["loadAsync"] = base::Bind(&IgnoreDeprecatedOption, "loadAsync"); |
parser_map["localState"] = |
base::Bind(&ParseDict, &capabilities->local_state); |
parser_map["logPath"] = base::Bind(&ParseLogPath); |
@@ -414,11 +418,9 @@ bool Capabilities::IsExistingBrowser() const { |
return debugger_address.IsValid(); |
} |
-Status Capabilities::Parse( |
- const base::DictionaryValue& desired_caps, |
- Log* log) { |
+Status Capabilities::Parse(const base::DictionaryValue& desired_caps) { |
std::map<std::string, Parser> parser_map; |
- parser_map["chromeOptions"] = base::Bind(&ParseChromeOptions, log); |
+ parser_map["chromeOptions"] = base::Bind(&ParseChromeOptions); |
parser_map["loggingPrefs"] = base::Bind(&ParseLoggingPrefs); |
parser_map["proxy"] = base::Bind(&ParseProxy); |
for (std::map<std::string, Parser>::iterator it = parser_map.begin(); |