Index: components/bookmarks/browser/bookmark_utils.cc |
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc |
index 304d2befbd07d5b36d3286e8b1e24010a393f884..3f0b1bf040756e2295513b3b74a374da78155aa3 100644 |
--- a/components/bookmarks/browser/bookmark_utils.cc |
+++ b/components/bookmarks/browser/bookmark_utils.cc |
@@ -194,7 +194,8 @@ void PasteFromClipboard(BookmarkModel* model, |
if (!parent) |
return; |
- BookmarkNodeData bookmark_data; |
+ if (BookmarkNodeData::ClipboardContainsBookmarks()) { |
+ BookmarkNodeData bookmark_data; |
if (!bookmark_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE)) |
return; |
@@ -202,12 +203,21 @@ void PasteFromClipboard(BookmarkModel* model, |
index = parent->child_count(); |
ScopedGroupBookmarkActions group_paste(model); |
CloneBookmarkNode(model, bookmark_data.elements, parent, index, true); |
+ } |
+ if (BookmarkNodeData::ClipboardContainsUrls()) { |
+ base::string16 url_text; |
+ ui::Clipboard::GetForCurrentThread()->ReadText( |
+ ui::CLIPBOARD_TYPE_COPY_PASTE, &url_text); |
+ GURL url(url_text); |
+ model->AddURL(parent, index, url_text, url); |
+ } |
} |
bool CanPasteFromClipboard(BookmarkModel* model, const BookmarkNode* node) { |
if (!node || !model->client()->CanBeEditedByUser(node)) |
return false; |
- return BookmarkNodeData::ClipboardContainsBookmarks(); |
+ return BookmarkNodeData::ClipboardContainsBookmarks() || |
+ BookmarkNodeData::ClipboardContainsUrls(); |
} |
std::vector<const BookmarkNode*> GetMostRecentlyModifiedUserFolders( |