Index: ios/chrome/browser/bookmarks/bookmarks_utils.h |
diff --git a/ios/chrome/browser/bookmarks/bookmarks_utils.h b/ios/chrome/browser/bookmarks/bookmarks_utils.h |
index 39cd066a67d403e3f83e5e4fe136137b13b12b19..0684a8d4f0c5aa43b3ada30481ed52e61abf307c 100644 |
--- a/ios/chrome/browser/bookmarks/bookmarks_utils.h |
+++ b/ios/chrome/browser/bookmarks/bookmarks_utils.h |
@@ -5,8 +5,16 @@ |
#ifndef IOS_CHROME_BROWSER_BOOKMARKS_BOOKMARKS_UTILS_H_ |
#define IOS_CHROME_BROWSER_BOOKMARKS_BOOKMARKS_UTILS_H_ |
+#include <set> |
+#include <vector> |
+ |
#include "base/compiler_specific.h" |
+namespace bookmarks { |
+class BookmarkModel; |
+class BookmarkNode; |
+} |
+ |
namespace ios { |
class ChromeBrowserState; |
} |
@@ -32,4 +40,27 @@ void RecordBookmarkLaunch(BookmarkLaunchLocation launch_location); |
bool RemoveAllUserBookmarksIOS(ios::ChromeBrowserState* browser_state) |
WARN_UNUSED_RESULT; |
+// Returns the permanent nodes whose url children are considered uncategorized |
+// and whose folder children should be shown in the bookmark menu. |
+// |model| must be loaded. |
+std::vector<const bookmarks::BookmarkNode*> PrimaryPermanentNodes( |
+ bookmarks::BookmarkModel* model); |
+ |
+// Returns an unsorted vector of folders that are considered to be at the "root" |
+// level of the bookmark hierarchy. Functionally, this means all direct |
+// descendants of PrimaryPermanentNodes. |
+std::vector<const bookmarks::BookmarkNode*> RootLevelFolders( |
+ bookmarks::BookmarkModel* model); |
+ |
+// Returns whether |node| is a primary permanent node in the sense of |
+// |PrimaryPermanentNodes|. |
+bool IsPrimaryPermanentNode(const bookmarks::BookmarkNode* node, |
+ bookmarks::BookmarkModel* model); |
+ |
+// Returns the root level folder in which this node is directly, or indirectly |
+// via subfolders, located. |
+const bookmarks::BookmarkNode* RootLevelFolderForNode( |
+ const bookmarks::BookmarkNode* node, |
+ bookmarks::BookmarkModel* model); |
+ |
#endif // IOS_CHROME_BROWSER_BOOKMARKS_BOOKMARKS_UTILS_H_ |