Index: chrome/browser/bookmarks/bookmark_codec.cc |
=================================================================== |
--- chrome/browser/bookmarks/bookmark_codec.cc (revision 10828) |
+++ chrome/browser/bookmarks/bookmark_codec.cc (working copy) |
@@ -36,12 +36,14 @@ |
Value* BookmarkCodec::Encode(BookmarkNode* bookmark_bar_node, |
BookmarkNode* other_folder_node) { |
DictionaryValue* roots = new DictionaryValue(); |
- roots->Set(kRootFolderNameKey, EncodeNode(bookmark_bar_node)); |
- roots->Set(kOtherBookmarFolderNameKey, EncodeNode(other_folder_node)); |
+ roots->Set(WideToUTF16Hack(kRootFolderNameKey), |
+ EncodeNode(bookmark_bar_node)); |
+ roots->Set(WideToUTF16Hack(kOtherBookmarFolderNameKey), |
+ EncodeNode(other_folder_node)); |
DictionaryValue* main = new DictionaryValue(); |
- main->SetInteger(kVersionKey, kCurrentVersion); |
- main->Set(kRootsKey, roots); |
+ main->SetInteger(WideToUTF16Hack(kVersionKey), kCurrentVersion); |
+ main->Set(WideToUTF16Hack(kRootsKey), roots); |
return main; |
} |
@@ -52,11 +54,12 @@ |
const DictionaryValue& d_value = static_cast<const DictionaryValue&>(value); |
int version; |
- if (!d_value.GetInteger(kVersionKey, &version) || version != kCurrentVersion) |
+ if (!d_value.GetInteger(WideToUTF16Hack(kVersionKey), &version) || |
+ version != kCurrentVersion) |
return false; // Unknown version. |
Value* roots; |
- if (!d_value.Get(kRootsKey, &roots)) |
+ if (!d_value.Get(WideToUTF16Hack(kRootsKey), &roots)) |
return false; // No roots. |
if (roots->GetType() != Value::TYPE_DICTIONARY) |
@@ -65,11 +68,14 @@ |
DictionaryValue* roots_d_value = static_cast<DictionaryValue*>(roots); |
Value* root_folder_value; |
Value* other_folder_value; |
- if (!roots_d_value->Get(kRootFolderNameKey, &root_folder_value) || |
+ if (!roots_d_value->Get(WideToUTF16Hack(kRootFolderNameKey), |
+ &root_folder_value) || |
root_folder_value->GetType() != Value::TYPE_DICTIONARY || |
- !roots_d_value->Get(kOtherBookmarFolderNameKey, &other_folder_value) || |
- other_folder_value->GetType() != Value::TYPE_DICTIONARY) |
+ !roots_d_value->Get(WideToUTF16Hack(kOtherBookmarFolderNameKey), |
+ &other_folder_value) || |
+ other_folder_value->GetType() != Value::TYPE_DICTIONARY) { |
return false; // Invalid type for root folder and/or other folder. |
+ } |
DecodeNode(model, *static_cast<DictionaryValue*>(root_folder_value), |
NULL, model->GetBookmarkBarNode()); |
@@ -89,21 +95,22 @@ |
Value* BookmarkCodec::EncodeNode(BookmarkNode* node) { |
DictionaryValue* value = new DictionaryValue(); |
- value->SetString(kNameKey, node->GetTitle()); |
- value->SetString(kDateAddedKey, |
- Int64ToWString(node->date_added().ToInternalValue())); |
+ value->SetString(WideToUTF16Hack(kNameKey), |
+ WideToUTF16Hack(node->GetTitle())); |
+ value->SetString(WideToUTF16Hack(kDateAddedKey), |
+ Int64ToString16(node->date_added().ToInternalValue())); |
if (node->GetType() == history::StarredEntry::URL) { |
- value->SetString(kTypeKey, kTypeURL); |
- value->SetString(kURLKey, |
- UTF8ToWide(node->GetURL().possibly_invalid_spec())); |
+ value->SetString(WideToUTF16Hack(kTypeKey), WideToUTF16Hack(kTypeURL)); |
+ value->SetString(WideToUTF16Hack(kURLKey), |
+ UTF8ToUTF16(node->GetURL().possibly_invalid_spec())); |
} else { |
- value->SetString(kTypeKey, kTypeFolder); |
- value->SetString(kDateModifiedKey, |
- Int64ToWString(node->date_group_modified(). |
+ value->SetString(WideToUTF16Hack(kTypeKey), WideToUTF16Hack(kTypeFolder)); |
+ value->SetString(WideToUTF16Hack(kDateModifiedKey), |
+ Int64ToString16(node->date_group_modified(). |
ToInternalValue())); |
ListValue* child_values = new ListValue(); |
- value->Set(kChildrenKey, child_values); |
+ value->Set(WideToUTF16Hack(kChildrenKey), child_values); |
for (int i = 0; i < node->GetChildCount(); ++i) |
child_values->Append(EncodeNode(node->GetChild(i))); |
} |
@@ -133,40 +140,42 @@ |
const DictionaryValue& value, |
BookmarkNode* parent, |
BookmarkNode* node) { |
- std::wstring title; |
- if (!value.GetString(kNameKey, &title)) |
+ string16 title; |
+ if (!value.GetString(WideToUTF16Hack(kNameKey), &title)) |
return false; |
// TODO(sky): this should be more flexible. Don't hoark if we can't parse it |
// all. |
- std::wstring date_added_string; |
- if (!value.GetString(kDateAddedKey, &date_added_string)) |
+ string16 date_added_string; |
+ if (!value.GetString(WideToUTF16Hack(kDateAddedKey), &date_added_string)) |
return false; |
- std::wstring type_string; |
- if (!value.GetString(kTypeKey, &type_string)) |
+ string16 type_string; |
+ if (!value.GetString(WideToUTF16Hack(kTypeKey), &type_string)) |
return false; |
- if (type_string != kTypeURL && type_string != kTypeFolder) |
+ if (type_string != WideToUTF16Hack(kTypeURL) && |
+ type_string != WideToUTF16Hack(kTypeFolder)) |
return false; // Unknown type. |
- if (type_string == kTypeURL) { |
- std::wstring url_string; |
- if (!value.GetString(kURLKey, &url_string)) |
+ if (type_string == WideToUTF16Hack(kTypeURL)) { |
+ string16 url_string; |
+ if (!value.GetString(WideToUTF16Hack(kURLKey), &url_string)) |
return false; |
// TODO(sky): this should ignore the node if not a valid URL. |
if (!node) |
- node = new BookmarkNode(model, GURL(WideToUTF8(url_string))); |
+ node = new BookmarkNode(model, GURL(UTF16ToUTF8(url_string))); |
if (parent) |
parent->Add(parent->GetChildCount(), node); |
node->type_ = history::StarredEntry::URL; |
} else { |
- std::wstring last_modified_date; |
- if (!value.GetString(kDateModifiedKey, &last_modified_date)) |
+ string16 last_modified_date; |
+ if (!value.GetString(WideToUTF16Hack(kDateModifiedKey), |
+ &last_modified_date)) |
return false; |
Value* child_values; |
- if (!value.Get(kChildrenKey, &child_values)) |
+ if (!value.Get(WideToUTF16Hack(kChildrenKey), &child_values)) |
return false; |
if (child_values->GetType() != Value::TYPE_LIST) |
@@ -175,8 +184,8 @@ |
if (!node) |
node = new BookmarkNode(model, GURL()); |
node->type_ = history::StarredEntry::USER_GROUP; |
- node->date_group_modified_ = Time::FromInternalValue( |
- StringToInt64(WideToUTF16Hack(last_modified_date))); |
+ node->date_group_modified_ = |
+ Time::FromInternalValue(StringToInt64(last_modified_date)); |
if (parent) |
parent->Add(parent->GetChildCount(), node); |
@@ -185,8 +194,8 @@ |
return false; |
} |
- node->SetTitle(title); |
- node->date_added_ = Time::FromInternalValue( |
- StringToInt64(WideToUTF16Hack(date_added_string))); |
+ node->SetTitle(UTF16ToWideHack(title)); |
+ node->date_added_ = |
+ Time::FromInternalValue(StringToInt64(date_added_string)); |
return true; |
} |