#include "base/prefs/writeable_pref_store.h"
#include "base/values.h"
+namespace autofill {
+
ChromeStorageImpl::ChromeStorageImpl(WriteablePrefStore* store)
: backing_store_(store),
scoped_observer_(this) {
ChromeStorageImpl::~ChromeStorageImpl() {}
-void ChromeStorageImpl::Put(const std::string& key, const std::string& data) {
- backing_store_->SetValue(key, new base::StringValue(data));
+void ChromeStorageImpl::Put(const std::string& key,
+ scoped_ptr<std::string> data) {
+ scoped_ptr<base::StringValue> string_value(
+ new base::StringValue(std::string()));
+ string_value->GetString()->swap(*data);
+ backing_store_->SetValue(key, string_value.release());
}
void ChromeStorageImpl::Get(
return;
}
- const base::Value* value;
- std::string result;
+ const base::Value* value = NULL;
+ const base::StringValue* string_value = NULL;
if (backing_store_->GetValue(key, &value) &&
- value->GetAsString(&result)) {
- (*data_ready)(true, key, result);
+ value->GetAsString(&string_value)) {
+ (*data_ready)(true, key, string_value->GetString());
} else {
(*data_ready)(false, key, std::string());
}
scoped_ptr<Storage::Callback> callback)
: key(key),
callback(callback.Pass()) {}
+
+} // namespace autofill