Index: chrome/test/webdriver/web_element_id.cc |
diff --git a/chrome/test/webdriver/web_element_id.cc b/chrome/test/webdriver/web_element_id.cc |
index 833cb270e425ef75e93aa61b763d639658f8e930..0344ab0aa3761efb5960ec32c54fc2cb846ae938 100644 |
--- a/chrome/test/webdriver/web_element_id.cc |
+++ b/chrome/test/webdriver/web_element_id.cc |
@@ -6,6 +6,7 @@ |
#include "base/logging.h" |
#include "base/values.h" |
+#include "chrome/test/automation/javascript_message_utils.h" |
namespace { |
@@ -30,10 +31,10 @@ WebElementId::WebElementId() : is_valid_(false) {} |
WebElementId::WebElementId(const std::string& id) : id_(id), is_valid_(true) {} |
-WebElementId::WebElementId(Value* value) { |
+WebElementId::WebElementId(const Value* value) { |
is_valid_ = false; |
if (value->IsType(Value::TYPE_DICTIONARY)) { |
- is_valid_ = static_cast<DictionaryValue*>(value)-> |
+ is_valid_ = static_cast<const DictionaryValue*>(value)-> |
GetString(kWebElementKey, &id_); |
} |
} |
@@ -54,3 +55,22 @@ bool WebElementId::is_valid() const { |
} |
} // namespace webdriver |
+ |
+base::Value* ValueConversionTraits<webdriver::WebElementId>::CreateValueFrom( |
+ const webdriver::WebElementId& t) { |
+ return t.ToValue(); |
+} |
+ |
+bool ValueConversionTraits<webdriver::WebElementId>::SetFromValue( |
+ const base::Value* value, webdriver::WebElementId* t) { |
+ webdriver::WebElementId id(value); |
+ if (id.is_valid()) |
+ *t = id; |
+ return id.is_valid(); |
+} |
+ |
+bool ValueConversionTraits<webdriver::WebElementId>::CanConvert( |
+ const base::Value* value) { |
+ webdriver::WebElementId t; |
+ return SetFromValue(value, &t); |
+} |