Index: chrome/browser/bookmarks/bookmark_utils.cc |
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc |
index b05a872f1dcf8ea1e7713afbb5e6e4099c4b3c3a..69f5da6aacde4d9231e56c2b8ec4462b2da4fa06 100644 |
--- a/chrome/browser/bookmarks/bookmark_utils.cc |
+++ b/chrome/browser/bookmarks/bookmark_utils.cc |
@@ -33,15 +33,27 @@ namespace { |
void CloneBookmarkNodeImpl(BookmarkModel* model, |
const BookmarkNodeData::Element& element, |
const BookmarkNode* parent, |
- int index_to_add_at) { |
+ int index_to_add_at, |
+ bool reset_node_times) { |
if (element.is_url) { |
- model->AddURL(parent, index_to_add_at, element.title, element.url); |
+ if (reset_node_times) { |
+ model->AddURL(parent, index_to_add_at, element.title, element.url); |
+ } else { |
+ DCHECK(!element.date_added.is_null()); |
+ model->AddURLWithCreationTime(parent, index_to_add_at, element.title, |
+ element.url, element.date_added); |
+ } |
} else { |
const BookmarkNode* new_folder = model->AddFolder(parent, |
index_to_add_at, |
element.title); |
+ if (!reset_node_times) { |
+ DCHECK(!element.date_folder_modified.is_null()); |
+ model->SetDateFolderModified(new_folder, element.date_folder_modified); |
+ } |
for (int i = 0; i < static_cast<int>(element.children.size()); ++i) |
- CloneBookmarkNodeImpl(model, element.children[i], new_folder, i); |
+ CloneBookmarkNodeImpl(model, element.children[i], new_folder, i, |
+ reset_node_times); |
} |
} |
@@ -83,13 +95,16 @@ namespace bookmark_utils { |
void CloneBookmarkNode(BookmarkModel* model, |
const std::vector<BookmarkNodeData::Element>& elements, |
const BookmarkNode* parent, |
- int index_to_add_at) { |
+ int index_to_add_at, |
+ bool reset_node_times) { |
if (!parent->is_folder() || !model) { |
NOTREACHED(); |
return; |
} |
- for (size_t i = 0; i < elements.size(); ++i) |
- CloneBookmarkNodeImpl(model, elements[i], parent, index_to_add_at + i); |
+ for (size_t i = 0; i < elements.size(); ++i) { |
+ CloneBookmarkNodeImpl(model, elements[i], parent, index_to_add_at + i, |
+ reset_node_times); |
+ } |
} |
@@ -122,7 +137,7 @@ void PasteFromClipboard(BookmarkModel* model, |
if (index == -1) |
index = parent->child_count(); |
- CloneBookmarkNode(model, bookmark_data.elements, parent, index); |
+ CloneBookmarkNode(model, bookmark_data.elements, parent, index, true); |
} |
bool CanPasteFromClipboard(const BookmarkNode* node) { |