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

Unified Diff: chrome/browser/extensions/api/bookmarks/bookmarks_api.cc

Issue 308273002: Made the bookmarks extension APIs aware of managed bookmarks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
diff --git a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
index 505fd0a5d65bf4b4aee80b21255c86aa5ae3dfb7..af5bb89d12f16c0220e832245db84fa640a1b6a1 100644
--- a/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
+++ b/chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
@@ -154,14 +154,8 @@ const BookmarkNode* BookmarksFunction::CreateBookmarkNode(
return NULL;
}
const BookmarkNode* parent = GetBookmarkNodeByID(model, parentId);
- if (!parent) {
- error_ = keys::kNoParentError;
- return NULL;
- }
- if (parent->is_root()) { // Can't create children of the root.
- error_ = keys::kModifySpecialError;
+ if (!CanBeModified(parent))
return NULL;
- }
int index;
if (!details.index.get()) { // Optional (defaults to end).
@@ -211,6 +205,23 @@ bool BookmarksFunction::EditBookmarksEnabled() {
return false;
}
+bool BookmarksFunction::CanBeModified(const BookmarkNode* node) {
+ if (!node) {
+ error_ = keys::kNoParentError;
+ return false;
+ }
+ if (node->is_root()) {
+ error_ = keys::kModifySpecialError;
+ return false;
+ }
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
+ if (model->IsManaged(node)) {
+ error_ = keys::kModifyManagedError;
+ return false;
+ }
+ return true;
+}
+
void BookmarksFunction::BookmarkModelChanged() {
}
@@ -630,13 +641,10 @@ bool BookmarksMoveFunction::RunOnReady() {
parent = GetBookmarkNodeByID(model, parentId);
}
- if (!parent) {
- error_ = keys::kNoParentError;
- // TODO(erikkay) return an error message.
+ if (!CanBeModified(parent))
return false;
- }
- if (parent == model->root_node()) {
- error_ = keys::kModifySpecialError;
+ if (model->IsManaged(node)) {
not at google - send to devlin 2014/06/03 18:09:16 why not !CanBeModified(node)?
Joao da Silva 2014/06/05 17:10:32 I thought some of the checks in CanBeModified are
+ error_ = keys::kModifyManagedError;
return false;
}
@@ -695,7 +703,7 @@ bool BookmarksUpdateFunction::RunOnReady() {
}
const BookmarkNode* node = GetBookmarkNodeFromId(params->id);
- if (!node)
+ if (!CanBeModified(node))
return false;
BookmarkModel* model = BookmarkModelFactory::GetForProfile(GetProfile());
@@ -896,7 +904,7 @@ void BookmarksMoveFunction::GetQuotaLimitHeuristics(
void BookmarksUpdateFunction::GetQuotaLimitHeuristics(
QuotaLimitHeuristics* heuristics) const {
BookmarksQuotaLimitFactory::Build<BookmarksUpdateFunction>(heuristics);
-};
+}
void BookmarksCreateFunction::GetQuotaLimitHeuristics(
QuotaLimitHeuristics* heuristics) const {

Powered by Google App Engine
This is Rietveld 408576698