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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_ 6#define CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_ 7 8#include <string> 9#include <vector> 10 11#include "base/basictypes.h" 12#include "chrome/common/extensions/api/bookmarks.h" 13 14class BookmarkModel; 15class BookmarkNode; 16 17// Helper functions. 18namespace extensions { 19namespace bookmark_api_helpers { 20 21// The returned value is owned by the caller. 22api::bookmarks::BookmarkTreeNode* GetBookmarkTreeNode( 23 const BookmarkNode* node, 24 bool recurse, 25 bool only_folders); 26 27// TODO(mwrosen): Remove this function once chrome.bookmarkManagerPrivate is 28// refactored to use the JSON schema compiler. 29base::DictionaryValue* GetNodeDictionary(const BookmarkNode* node, 30 bool recurse, 31 bool only_folders); 32 33// Add a JSON representation of |node| to the JSON |nodes|. 34void AddNode(const BookmarkNode* node, 35 std::vector<linked_ptr<api::bookmarks::BookmarkTreeNode> >* nodes, 36 bool recurse); 37 38void AddNodeFoldersOnly(const BookmarkNode* node, 39 std::vector<linked_ptr< 40 api::bookmarks::BookmarkTreeNode> >* nodes, 41 bool recurse); 42 43// TODO(mwrosen): Remove this function once chrome.bookmarkManagerPrivate is 44// refactored to use the JSON schema compiler. 45void AddNode(const BookmarkNode* node, 46 base::ListValue* list, 47 bool recurse); 48 49// TODO(mwrosen): Remove this function once chrome.bookmarkManagerPrivate is 50// refactored to use the JSON schema compiler. 51void AddNodeFoldersOnly(const BookmarkNode* node, 52 base::ListValue* list, 53 bool recurse); 54 55bool RemoveNode(BookmarkModel* model, 56 int64 id, 57 bool recursive, 58 std::string* error); 59 60} // namespace bookmark_api_helpers 61} // namespace extensions 62 63#endif // CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARK_API_HELPERS_H_ 64