Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.cc

Issue 308273002: Made the bookmarks extension APIs aware of managed bookmarks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h" 5 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h"
6 6
7 #include <math.h> // For floor() 7 #include <math.h> // For floor()
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
12 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h" 13 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
13 #include "chrome/common/extensions/api/bookmarks.h" 14 #include "chrome/common/extensions/api/bookmarks.h"
14 #include "components/bookmarks/browser/bookmark_model.h" 15 #include "components/bookmarks/browser/bookmark_model.h"
15 #include "components/bookmarks/browser/bookmark_utils.h" 16 #include "components/bookmarks/browser/bookmark_utils.h"
16 17
17 namespace extensions { 18 namespace extensions {
18 19
19 namespace keys = bookmark_api_constants; 20 namespace keys = bookmark_api_constants;
20 using api::bookmarks::BookmarkTreeNode; 21 using api::bookmarks::BookmarkTreeNode;
21 22
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 bool recurse) { 91 bool recurse) {
91 return AddNodeHelper(node, nodes, recurse, false); 92 return AddNodeHelper(node, nodes, recurse, false);
92 } 93 }
93 94
94 void AddNodeFoldersOnly(const BookmarkNode* node, 95 void AddNodeFoldersOnly(const BookmarkNode* node,
95 std::vector<linked_ptr<BookmarkTreeNode> >* nodes, 96 std::vector<linked_ptr<BookmarkTreeNode> >* nodes,
96 bool recurse) { 97 bool recurse) {
97 return AddNodeHelper(node, nodes, recurse, true); 98 return AddNodeHelper(node, nodes, recurse, true);
98 } 99 }
99 100
100 bool RemoveNode(BookmarkModel* model, 101 bool RemoveNode(ChromeBookmarkClient* client,
101 int64 id, 102 int64 id,
102 bool recursive, 103 bool recursive,
103 std::string* error) { 104 std::string* error) {
105 BookmarkModel* model = client->model();
104 const BookmarkNode* node = GetBookmarkNodeByID(model, id); 106 const BookmarkNode* node = GetBookmarkNodeByID(model, id);
105 if (!node) { 107 if (!node) {
106 *error = keys::kNoNodeError; 108 *error = keys::kNoNodeError;
107 return false; 109 return false;
108 } 110 }
109 if (model->is_permanent_node(node)) { 111 if (model->is_permanent_node(node)) {
110 *error = keys::kModifySpecialError; 112 *error = keys::kModifySpecialError;
111 return false; 113 return false;
112 } 114 }
115 if (client->IsDescendantOfManagedNode(node)) {
116 *error = keys::kModifyManagedError;
117 return false;
118 }
113 if (node->is_folder() && !node->empty() && !recursive) { 119 if (node->is_folder() && !node->empty() && !recursive) {
114 *error = keys::kFolderNotEmptyError; 120 *error = keys::kFolderNotEmptyError;
115 return false; 121 return false;
116 } 122 }
117 123
118 const BookmarkNode* parent = node->parent(); 124 const BookmarkNode* parent = node->parent();
119 model->Remove(parent, parent->GetIndexOf(node)); 125 model->Remove(parent, parent->GetIndexOf(node));
120 return true; 126 return true;
121 } 127 }
122 128
123 } // namespace bookmark_api_helpers 129 } // namespace bookmark_api_helpers
124 } // namespace extensions 130 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698