| OLD | NEW |
| 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" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 | 22 |
| 23 namespace keys = bookmark_api_constants; | 23 namespace keys = bookmark_api_constants; |
| 24 using api::bookmarks::BookmarkTreeNode; | 24 using api::bookmarks::BookmarkTreeNode; |
| 25 | 25 |
| 26 namespace bookmark_api_helpers { | 26 namespace bookmark_api_helpers { |
| 27 | 27 |
| 28 namespace { | 28 namespace { |
| 29 | 29 |
| 30 void AddNodeHelper(bookmarks::ManagedBookmarkService* managed, | 30 void AddNodeHelper(bookmarks::ManagedBookmarkService* managed, |
| 31 const BookmarkNode* node, | 31 const BookmarkNode* node, |
| 32 std::vector<linked_ptr<BookmarkTreeNode>>* nodes, | 32 std::vector<BookmarkTreeNode>* nodes, |
| 33 bool recurse, | 33 bool recurse, |
| 34 bool only_folders) { | 34 bool only_folders) { |
| 35 if (node->IsVisible()) { | 35 if (node->IsVisible()) |
| 36 linked_ptr<BookmarkTreeNode> new_node( | 36 nodes->push_back(GetBookmarkTreeNode(managed, node, recurse, only_folders)); |
| 37 GetBookmarkTreeNode(managed, node, recurse, only_folders)); | |
| 38 nodes->push_back(new_node); | |
| 39 } | |
| 40 } | 37 } |
| 41 | 38 |
| 42 } // namespace | 39 } // namespace |
| 43 | 40 |
| 44 BookmarkTreeNode* GetBookmarkTreeNode( | 41 BookmarkTreeNode GetBookmarkTreeNode(bookmarks::ManagedBookmarkService* managed, |
| 45 bookmarks::ManagedBookmarkService* managed, | 42 const BookmarkNode* node, |
| 46 const BookmarkNode* node, | 43 bool recurse, |
| 47 bool recurse, | 44 bool only_folders) { |
| 48 bool only_folders) { | 45 BookmarkTreeNode bookmark_tree_node; |
| 49 BookmarkTreeNode* bookmark_tree_node = new BookmarkTreeNode; | |
| 50 PopulateBookmarkTreeNode(managed, node, recurse, only_folders, | 46 PopulateBookmarkTreeNode(managed, node, recurse, only_folders, |
| 51 bookmark_tree_node); | 47 &bookmark_tree_node); |
| 52 return bookmark_tree_node; | 48 return bookmark_tree_node; |
| 53 } | 49 } |
| 54 | 50 |
| 55 void PopulateBookmarkTreeNode( | 51 void PopulateBookmarkTreeNode( |
| 56 bookmarks::ManagedBookmarkService* managed, | 52 bookmarks::ManagedBookmarkService* managed, |
| 57 const bookmarks::BookmarkNode* node, | 53 const bookmarks::BookmarkNode* node, |
| 58 bool recurse, | 54 bool recurse, |
| 59 bool only_folders, | 55 bool only_folders, |
| 60 api::bookmarks::BookmarkTreeNode* out_bookmark_tree_node) { | 56 api::bookmarks::BookmarkTreeNode* out_bookmark_tree_node) { |
| 61 DCHECK(out_bookmark_tree_node); | 57 DCHECK(out_bookmark_tree_node); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 87 new double(floor(node->date_added().ToDoubleT() * 1000))); | 83 new double(floor(node->date_added().ToDoubleT() * 1000))); |
| 88 } | 84 } |
| 89 | 85 |
| 90 if (bookmarks::IsDescendantOf(node, managed->managed_node()) || | 86 if (bookmarks::IsDescendantOf(node, managed->managed_node()) || |
| 91 bookmarks::IsDescendantOf(node, managed->supervised_node())) { | 87 bookmarks::IsDescendantOf(node, managed->supervised_node())) { |
| 92 out_bookmark_tree_node->unmodifiable = | 88 out_bookmark_tree_node->unmodifiable = |
| 93 api::bookmarks::BOOKMARK_TREE_NODE_UNMODIFIABLE_MANAGED; | 89 api::bookmarks::BOOKMARK_TREE_NODE_UNMODIFIABLE_MANAGED; |
| 94 } | 90 } |
| 95 | 91 |
| 96 if (recurse && node->is_folder()) { | 92 if (recurse && node->is_folder()) { |
| 97 std::vector<linked_ptr<BookmarkTreeNode>> children; | 93 std::vector<BookmarkTreeNode> children; |
| 98 for (int i = 0; i < node->child_count(); ++i) { | 94 for (int i = 0; i < node->child_count(); ++i) { |
| 99 const BookmarkNode* child = node->GetChild(i); | 95 const BookmarkNode* child = node->GetChild(i); |
| 100 if (child->IsVisible() && (!only_folders || child->is_folder())) { | 96 if (child->IsVisible() && (!only_folders || child->is_folder())) { |
| 101 linked_ptr<BookmarkTreeNode> child_node( | 97 children.push_back( |
| 102 GetBookmarkTreeNode(managed, child, true, only_folders)); | 98 GetBookmarkTreeNode(managed, child, true, only_folders)); |
| 103 children.push_back(child_node); | |
| 104 } | 99 } |
| 105 } | 100 } |
| 106 out_bookmark_tree_node->children.reset( | 101 out_bookmark_tree_node->children.reset( |
| 107 new std::vector<linked_ptr<BookmarkTreeNode>>(children)); | 102 new std::vector<BookmarkTreeNode>(std::move(children))); |
| 108 } | 103 } |
| 109 } | 104 } |
| 110 | 105 |
| 111 void AddNode(bookmarks::ManagedBookmarkService* managed, | 106 void AddNode(bookmarks::ManagedBookmarkService* managed, |
| 112 const BookmarkNode* node, | 107 const BookmarkNode* node, |
| 113 std::vector<linked_ptr<BookmarkTreeNode>>* nodes, | 108 std::vector<BookmarkTreeNode>* nodes, |
| 114 bool recurse) { | 109 bool recurse) { |
| 115 return AddNodeHelper(managed, node, nodes, recurse, false); | 110 return AddNodeHelper(managed, node, nodes, recurse, false); |
| 116 } | 111 } |
| 117 | 112 |
| 118 void AddNodeFoldersOnly(bookmarks::ManagedBookmarkService* managed, | 113 void AddNodeFoldersOnly(bookmarks::ManagedBookmarkService* managed, |
| 119 const BookmarkNode* node, | 114 const BookmarkNode* node, |
| 120 std::vector<linked_ptr<BookmarkTreeNode>>* nodes, | 115 std::vector<BookmarkTreeNode>* nodes, |
| 121 bool recurse) { | 116 bool recurse) { |
| 122 return AddNodeHelper(managed, node, nodes, recurse, true); | 117 return AddNodeHelper(managed, node, nodes, recurse, true); |
| 123 } | 118 } |
| 124 | 119 |
| 125 bool RemoveNode(BookmarkModel* model, | 120 bool RemoveNode(BookmarkModel* model, |
| 126 bookmarks::ManagedBookmarkService* managed, | 121 bookmarks::ManagedBookmarkService* managed, |
| 127 int64_t id, | 122 int64_t id, |
| 128 bool recursive, | 123 bool recursive, |
| 129 std::string* error) { | 124 std::string* error) { |
| 130 const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(model, id); | 125 const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(model, id); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 | 162 |
| 168 if (node.is_folder()) { | 163 if (node.is_folder()) { |
| 169 for (int i = 0; i < node.child_count(); ++i) { | 164 for (int i = 0; i < node.child_count(); ++i) { |
| 170 GetMetaInfo(*(node.GetChild(i)), id_to_meta_info_map); | 165 GetMetaInfo(*(node.GetChild(i)), id_to_meta_info_map); |
| 171 } | 166 } |
| 172 } | 167 } |
| 173 } | 168 } |
| 174 | 169 |
| 175 } // namespace bookmark_api_helpers | 170 } // namespace bookmark_api_helpers |
| 176 } // namespace extensions | 171 } // namespace extensions |
| OLD | NEW |