Index: chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
diff --git a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
index 36e0dc685712142488595259d4c701410d14402d..4b10bcc3b6b45db48a4541027816a11f9f434a1e 100644 |
--- a/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
+++ b/chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc |
@@ -389,7 +389,7 @@ |
const BookmarkNode* parent_node = GetNodeFromString(model, params->parent_id); |
if (!CanBeModified(parent_node)) |
return false; |
- bool can_paste = bookmark_utils::CanPasteFromClipboard(model, parent_node); |
+ bool can_paste = bookmark_utils::CanPasteFromClipboard(parent_node); |
if (!can_paste) |
return false; |
@@ -417,14 +417,15 @@ |
scoped_ptr<CanPaste::Params> params(CanPaste::Params::Create(*args_)); |
EXTENSION_FUNCTION_VALIDATE(params); |
- BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile()); |
- const BookmarkNode* parent_node = GetNodeFromString(model, params->parent_id); |
+ ChromeBookmarkClient* client = GetChromeBookmarkClient(); |
+ const BookmarkNode* parent_node = |
+ GetNodeFromString(client->model(), params->parent_id); |
if (!parent_node) { |
error_ = bookmark_keys::kNoParentError; |
return false; |
} |
- bool can_paste = |
- bookmark_utils::CanPasteFromClipboard(model, parent_node); |
+ bool can_paste = bookmark_utils::CanPasteFromClipboard(parent_node) && |
+ !client->IsDescendantOfManagedNode(parent_node); |
SetResult(new base::FundamentalValue(can_paste)); |
return true; |
} |