diff options
author | munjal@chromium.org <munjal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-21 22:53:46 +0000 |
---|---|---|
committer | munjal@chromium.org <munjal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-21 22:53:46 +0000 |
commit | 9c6a85d5fa2abf914c0a5eefe09e2ded3103680b (patch) | |
tree | eb87e986ee5abf42e680c1b408e1a4b2744ce38e /chrome/browser | |
parent | c51e6b955efef19073972efa5a1bd75701dfc6d4 (diff) | |
download | chromium_src-9c6a85d5fa2abf914c0a5eefe09e2ded3103680b.zip chromium_src-9c6a85d5fa2abf914c0a5eefe09e2ded3103680b.tar.gz chromium_src-9c6a85d5fa2abf914c0a5eefe09e2ded3103680b.tar.bz2 |
More bookmarks string1t work.
TEST=exists
BUG=32013
Review URL: http://codereview.chromium.org/546094
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36805 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_codec.cc | 52 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_codec.h | 16 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_context_menu_controller.cc | 2 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_drag_data.cc | 16 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_drag_data.h | 3 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_html_writer.cc | 28 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_utils.cc | 7 |
7 files changed, 62 insertions, 62 deletions
diff --git a/chrome/browser/bookmarks/bookmark_codec.cc b/chrome/browser/bookmarks/bookmark_codec.cc index 0ed7d5d..e64c365 100644 --- a/chrome/browser/bookmarks/bookmark_codec.cc +++ b/chrome/browser/bookmarks/bookmark_codec.cc @@ -27,8 +27,8 @@ const wchar_t* BookmarkCodec::kDateAddedKey = L"date_added"; const wchar_t* BookmarkCodec::kURLKey = L"url"; const wchar_t* BookmarkCodec::kDateModifiedKey = L"date_modified"; const wchar_t* BookmarkCodec::kChildrenKey = L"children"; -const wchar_t* BookmarkCodec::kTypeURL = L"url"; -const wchar_t* BookmarkCodec::kTypeFolder = L"folder"; +const char* BookmarkCodec::kTypeURL = "url"; +const char* BookmarkCodec::kTypeFolder = "folder"; // Current version of the file. static const int kCurrentVersion = 1; @@ -84,23 +84,22 @@ bool BookmarkCodec::Decode(BookmarkNode* bb_node, Value* BookmarkCodec::EncodeNode(const BookmarkNode* node) { DictionaryValue* value = new DictionaryValue(); - std::string id; - id = Int64ToString(node->id()); + std::string id = Int64ToString(node->id()); value->SetString(kIdKey, id); - const std::wstring& title = node->GetTitle(); - value->SetString(kNameKey, title); + const string16& title = node->GetTitleAsString16(); + value->SetStringFromUTF16(kNameKey, title); value->SetString(kDateAddedKey, - Int64ToWString(node->date_added().ToInternalValue())); + Int64ToString(node->date_added().ToInternalValue())); if (node->type() == BookmarkNode::URL) { value->SetString(kTypeKey, kTypeURL); - std::wstring url = UTF8ToWide(node->GetURL().possibly_invalid_spec()); + std::string url = node->GetURL().possibly_invalid_spec(); value->SetString(kURLKey, url); UpdateChecksumWithUrlNode(id, title, url); } else { value->SetString(kTypeKey, kTypeFolder); value->SetString(kDateModifiedKey, - Int64ToWString(node->date_group_modified(). - ToInternalValue())); + Int64ToString(node->date_group_modified(). + ToInternalValue())); UpdateChecksumWithFolderNode(id, title); ListValue* child_values = new ListValue(); @@ -203,14 +202,14 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, maximum_id_ = std::max(maximum_id_, id); - std::wstring title; - value.GetString(kNameKey, &title); + string16 title; + value.GetStringAsUTF16(kNameKey, &title); - std::wstring date_added_string; + std::string date_added_string; if (!value.GetString(kDateAddedKey, &date_added_string)) - date_added_string = Int64ToWString(Time::Now().ToInternalValue()); + date_added_string = Int64ToString(Time::Now().ToInternalValue()); base::Time date_added = base::Time::FromInternalValue( - StringToInt64(WideToUTF16Hack(date_added_string))); + StringToInt64(date_added_string)); #if !defined(OS_WIN) // We changed the epoch for dates on Mac & Linux from 1970 to the Windows // one of 1601. We assume any number we encounter from before 1970 is using @@ -225,7 +224,7 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, } #endif - std::wstring type_string; + std::string type_string; if (!value.GetString(kTypeKey, &type_string)) return false; @@ -233,11 +232,11 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, return false; // Unknown type. if (type_string == kTypeURL) { - std::wstring url_string; + std::string url_string; if (!value.GetString(kURLKey, &url_string)) return false; - GURL url = GURL(WideToUTF8(url_string)); + GURL url = GURL(url_string); if (!node && url.is_valid()) node = new BookmarkNode(id, url); else @@ -248,9 +247,9 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, node->set_type(BookmarkNode::URL); UpdateChecksumWithUrlNode(id_string, title, url_string); } else { - std::wstring last_modified_date; + std::string last_modified_date; if (!value.GetString(kDateModifiedKey, &last_modified_date)) - last_modified_date = Int64ToWString(Time::Now().ToInternalValue()); + last_modified_date = Int64ToString(Time::Now().ToInternalValue()); Value* child_values; if (!value.Get(kChildrenKey, &child_values)) @@ -268,7 +267,7 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, node->set_type(BookmarkNode::FOLDER); node->set_date_group_modified(Time::FromInternalValue( - StringToInt64(WideToUTF16Hack(last_modified_date)))); + StringToInt64(last_modified_date))); if (parent) parent->Add(parent->GetChildCount(), node); @@ -303,13 +302,14 @@ void BookmarkCodec::UpdateChecksum(const std::string& str) { MD5Update(&md5_context_, str.data(), str.length() * sizeof(char)); } -void BookmarkCodec::UpdateChecksum(const std::wstring& str) { - MD5Update(&md5_context_, str.data(), str.length() * sizeof(wchar_t)); +void BookmarkCodec::UpdateChecksum(const string16& str) { + MD5Update(&md5_context_, str.data(), str.length() * sizeof(char16)); } void BookmarkCodec::UpdateChecksumWithUrlNode(const std::string& id, - const std::wstring& title, - const std::wstring& url) { + const string16& title, + const std::string& url) { + DCHECK(IsStringUTF8(url)); UpdateChecksum(id); UpdateChecksum(title); UpdateChecksum(kTypeURL); @@ -317,7 +317,7 @@ void BookmarkCodec::UpdateChecksumWithUrlNode(const std::string& id, } void BookmarkCodec::UpdateChecksumWithFolderNode(const std::string& id, - const std::wstring& title) { + const string16& title) { UpdateChecksum(id); UpdateChecksum(title); UpdateChecksum(kTypeFolder); diff --git a/chrome/browser/bookmarks/bookmark_codec.h b/chrome/browser/bookmarks/bookmark_codec.h index 257a80f..f1df31c 100644 --- a/chrome/browser/bookmarks/bookmark_codec.h +++ b/chrome/browser/bookmarks/bookmark_codec.h @@ -15,6 +15,7 @@ #include "base/basictypes.h" #include "base/scoped_ptr.h" #include "base/md5.h" +#include "base/string16.h" class BookmarkModel; class BookmarkNode; @@ -85,8 +86,8 @@ class BookmarkCodec { static const wchar_t* kChildrenKey; // Possible values for kTypeKey. - static const wchar_t* kTypeURL; - static const wchar_t* kTypeFolder; + static const char* kTypeURL; + static const char* kTypeFolder; private: // Encodes node and all its children into a Value object and returns it. @@ -118,18 +119,19 @@ class BookmarkCodec { // Updates the check-sum with the given string. void UpdateChecksum(const std::string& str); - void UpdateChecksum(const std::wstring& str); + void UpdateChecksum(const string16& str); // Updates the check-sum with the given contents of URL/folder bookmark node. // NOTE: These functions take in individual properties of a bookmark node // instead of taking in a BookmarkNode for efficiency so that we don't convert - // varous data-types to wide strings multiple times - once for serializing + // various data-types to UTF16 strings multiple times - once for serializing // and once for computing the check-sum. + // The url parameter should be a valid UTF8 string. void UpdateChecksumWithUrlNode(const std::string& id, - const std::wstring& title, - const std::wstring& url); + const string16& title, + const std::string& url); void UpdateChecksumWithFolderNode(const std::string& id, - const std::wstring& title); + const string16& title); // Initializes/Finalizes the checksum. void InitializeChecksum(); diff --git a/chrome/browser/bookmarks/bookmark_context_menu_controller.cc b/chrome/browser/bookmarks/bookmark_context_menu_controller.cc index ed7784b..a46110b 100644 --- a/chrome/browser/bookmarks/bookmark_context_menu_controller.cc +++ b/chrome/browser/bookmarks/bookmark_context_menu_controller.cc @@ -78,7 +78,7 @@ class EditFolderController : public InputWindowDialog::Delegate, l10n_util::GetString(IDS_BOOMARK_BAR_EDIT_FOLDER_LABEL); std::wstring contents = is_new_ ? l10n_util::GetString(IDS_BOOMARK_EDITOR_NEW_FOLDER_NAME) : - node_->GetTitle(); + UTF16ToWide(node_->GetTitleAsString16()); dialog_ = InputWindowDialog::Create(wnd, title, label, contents, this); model_->AddObserver(this); diff --git a/chrome/browser/bookmarks/bookmark_drag_data.cc b/chrome/browser/bookmarks/bookmark_drag_data.cc index 05e86fd..a22f60c 100644 --- a/chrome/browser/bookmarks/bookmark_drag_data.cc +++ b/chrome/browser/bookmarks/bookmark_drag_data.cc @@ -20,7 +20,7 @@ const char* BookmarkDragData::kClipboardFormatString = BookmarkDragData::Element::Element(const BookmarkNode* node) : is_url(node->is_url()), url(node->GetURL()), - title(node->GetTitle()), + title(node->GetTitleAsString16()), id_(node->id()) { for (int i = 0; i < node->GetChildCount(); ++i) children.push_back(Element(node->GetChild(i))); @@ -29,7 +29,7 @@ BookmarkDragData::Element::Element(const BookmarkNode* node) void BookmarkDragData::Element::WriteToPickle(Pickle* pickle) const { pickle->WriteBool(is_url); pickle->WriteString(url.spec()); - pickle->WriteWString(title); + pickle->WriteString16(title); pickle->WriteInt64(id_); if (!is_url) { pickle->WriteSize(children.size()); @@ -45,7 +45,7 @@ bool BookmarkDragData::Element::ReadFromPickle(Pickle* pickle, std::string url_spec; if (!pickle->ReadBool(iterator, &is_url) || !pickle->ReadString(iterator, &url_spec) || - !pickle->ReadWString(iterator, &title) || + !pickle->ReadString16(iterator, &title) || !pickle->ReadInt64(iterator, &id_)) { return false; } @@ -97,7 +97,7 @@ void BookmarkDragData::WriteToClipboard(Profile* profile) const { // If there is only one element and it is a URL, write the URL to the // clipboard. if (elements.size() == 1 && elements[0].is_url) { - string16 title = WideToUTF16Hack(elements[0].title); + const string16& title = elements[0].title; std::string url = elements[0].url.spec(); scw.WriteBookmark(title, url); @@ -131,7 +131,7 @@ bool BookmarkDragData::ReadFromClipboard() { Element element; element.is_url = true; element.url = GURL(url); - element.title = UTF16ToWideHack(title); + element.title = title; elements.clear(); elements.push_back(element); @@ -152,7 +152,7 @@ void BookmarkDragData::Write(Profile* profile, OSExchangeData* data) const { if (elements[0].url.SchemeIs(chrome::kJavaScriptScheme)) { data->SetString(ASCIIToWide(elements[0].url.spec())); } else { - data->SetURL(elements[0].url, elements[0].title); + data->SetURL(elements[0].url, UTF16ToWide(elements[0].title)); } } @@ -176,8 +176,10 @@ bool BookmarkDragData::Read(const OSExchangeData& data) { } else { // See if there is a URL on the clipboard. Element element; - if (data.GetURLAndTitle(&element.url, &element.title) && + std::wstring title; + if (data.GetURLAndTitle(&element.url, &title) && element.url.is_valid()) { + element.title = WideToUTF16(title); element.is_url = true; elements.push_back(element); } diff --git a/chrome/browser/bookmarks/bookmark_drag_data.h b/chrome/browser/bookmarks/bookmark_drag_data.h index 2699234..2078bfa 100644 --- a/chrome/browser/bookmarks/bookmark_drag_data.h +++ b/chrome/browser/bookmarks/bookmark_drag_data.h @@ -8,6 +8,7 @@ #include <string> #include <vector> +#include "base/string16.h" #include "googleurl/src/gurl.h" // TODO(port): Port this file. @@ -55,7 +56,7 @@ struct BookmarkDragData { GURL url; // Title of the entry, used for both urls and groups/folders. - std::wstring title; + string16 title; // Children, only used for non-URL nodes. std::vector<Element> children; diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc index eb330ac..a80abb1 100644 --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc @@ -161,25 +161,19 @@ class Writer : public Task { // Writes out the text string (as UTF8). The text is escaped based on // type. - bool Write(const std::wstring& text, TextType type) { + bool Write(const std::string& text, TextType type) { + DCHECK(IsStringUTF8(text)); std::string utf8_string; switch (type) { case ATTRIBUTE_VALUE: // Convert " to " - if (text.find(L"\"") != std::wstring::npos) { - string16 replaced_string = WideToUTF16Hack(text); - ReplaceSubstringsAfterOffset(&replaced_string, 0, - ASCIIToUTF16("\""), - ASCIIToUTF16(""")); - utf8_string = UTF16ToUTF8(replaced_string); - } else { - utf8_string = WideToUTF8(text); - } + utf8_string = text; + ReplaceSubstringsAfterOffset(&utf8_string, 0, "\"", """); break; case CONTENT: - utf8_string = UTF16ToUTF8(EscapeForHTML(WideToUTF16Hack(text))); + utf8_string = EscapeForHTML(text); break; default: @@ -196,16 +190,16 @@ class Writer : public Task { // Converts a time string written to the JSON codec into a time_t string // (used by bookmarks.html) and writes it. - bool WriteTime(const std::wstring& time_string) { + bool WriteTime(const std::string& time_string) { base::Time time = base::Time::FromInternalValue( - StringToInt64(WideToUTF16Hack(time_string))); + StringToInt64(time_string)); return Write(Int64ToString(time.ToTimeT())); } // Writes the node and all its children, returning true on success. bool WriteNode(const DictionaryValue& value, BookmarkNode::Type folder_type) { - std::wstring title, date_added_string, type_string; + std::string title, date_added_string, type_string; if (!value.GetString(BookmarkCodec::kNameKey, &title) || !value.GetString(BookmarkCodec::kDateAddedKey, &date_added_string) || !value.GetString(BookmarkCodec::kTypeKey, &type_string) || @@ -216,7 +210,7 @@ class Writer : public Task { } if (type_string == BookmarkCodec::kTypeURL) { - std::wstring url_string; + std::string url_string; if (!value.GetString(BookmarkCodec::kURLKey, &url_string)) { NOTREACHED(); return false; @@ -236,7 +230,7 @@ class Writer : public Task { } // Folder. - std::wstring last_modified_date; + std::string last_modified_date; Value* child_values; if (!value.GetString(BookmarkCodec::kDateModifiedKey, &last_modified_date) || @@ -259,7 +253,7 @@ class Writer : public Task { if (folder_type == BookmarkNode::BOOKMARK_BAR) { if (!Write(kBookmarkBar)) return false; - title = l10n_util::GetString(IDS_BOOMARK_BAR_FOLDER_NAME); + title = l10n_util::GetStringUTF8(IDS_BOOMARK_BAR_FOLDER_NAME); } else if (!Write(kFolderAttributeEnd)) { return false; } diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index 5d10ea8..2d21acc 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -11,6 +11,7 @@ #include "base/basictypes.h" #include "base/file_path.h" #include "base/string_util.h" +#include "base/string16.h" #include "base/time.h" #include "chrome/browser/bookmarks/bookmark_drag_data.h" #include "chrome/browser/bookmarks/bookmark_model.h" @@ -251,12 +252,12 @@ int PerformBookmarkDrop(Profile* profile, return DragDropTypes::DRAG_MOVE; } else if (data.has_single_url()) { // New URL, add it at the specified location. - std::wstring title = data.elements[0].title; + string16 title = data.elements[0].title; if (title.empty()) { // No title, use the host. - title = UTF8ToWide(data.elements[0].url.host()); + title = UTF8ToUTF16(data.elements[0].url.host()); if (title.empty()) - title = l10n_util::GetString(IDS_BOOMARK_BAR_UNKNOWN_DRAG_TITLE); + title = l10n_util::GetStringUTF16(IDS_BOOMARK_BAR_UNKNOWN_DRAG_TITLE); } model->AddURL(parent_node, index, title, data.elements[0].url); return DragDropTypes::DRAG_COPY | DragDropTypes::DRAG_LINK; |