| Index: chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc
|
| diff --git a/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc b/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc
|
| index 182cbb4a9844617f47dad2b678a27efb88b24ba0..ef55c690ed61794507c8fd4aeb256a276e04c871 100644
|
| --- a/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc
|
| +++ b/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| +#include "chrome/browser/bookmarks/chrome_bookmark_client.h"
|
| #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
|
| #include "chrome/common/extensions/api/bookmarks.h"
|
| #include "components/bookmarks/browser/bookmark_model.h"
|
| @@ -97,10 +98,11 @@ void AddNodeFoldersOnly(const BookmarkNode* node,
|
| return AddNodeHelper(node, nodes, recurse, true);
|
| }
|
|
|
| -bool RemoveNode(BookmarkModel* model,
|
| +bool RemoveNode(ChromeBookmarkClient* client,
|
| int64 id,
|
| bool recursive,
|
| std::string* error) {
|
| + BookmarkModel* model = client->model();
|
| const BookmarkNode* node = GetBookmarkNodeByID(model, id);
|
| if (!node) {
|
| *error = keys::kNoNodeError;
|
| @@ -110,6 +112,10 @@ bool RemoveNode(BookmarkModel* model,
|
| *error = keys::kModifySpecialError;
|
| return false;
|
| }
|
| + if (client->IsAManagedNode(node)) {
|
| + *error = keys::kModifyManagedError;
|
| + return false;
|
| + }
|
| if (node->is_folder() && !node->empty() && !recursive) {
|
| *error = keys::kFolderNotEmptyError;
|
| return false;
|
|
|