1 // Copyright 2014 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 COMPONENTS_ENHANCED_BOOKMARKS_METADATA_ACCESSOR_H_ 6 #define COMPONENTS_ENHANCED_BOOKMARKS_METADATA_ACCESSOR_H_ 7 8 #include <set> 9 #include <string> 10 #include <vector> 11 12 class BookmarkModel; 13 class BookmarkNode; 14 class GURL; 15 16 // TODO(rfevang): Remove this file once the remaining caller 17 // is converted (enhanced_bookmarks_bridge.cc) 18 19 // The functions in this file store and retrieve structured data encoded in the 20 // bookmark metadata. This information suplements the data in the bookmark with 21 // images and descriptions related to the url. 22 namespace enhanced_bookmarks { 23 24 typedef std::vector<const BookmarkNode*> NodeVector; 25 typedef std::set<const BookmarkNode*> NodeSet; 26 27 // The keys used to store the data in the bookmarks metadata dictionary. 28 extern const char* kPageDataKey; 29 extern const char* kImageDataKey; 30 extern const char* kIdDataKey; 31 extern const char* kNoteKey; 32 33 // Returns the remoteId for a bookmark. If the bookmark doesn't have one already 34 // this function will create and set one. 35 std::string RemoteIdFromBookmark(BookmarkModel* bookmark_model, 36 const BookmarkNode* node); 37 38 // Sets the description of a bookmark. 39 void SetDescriptionForBookmark(BookmarkModel* bookmark_model, 40 const BookmarkNode* node, 41 const std::string& description); 42 43 // Returns the description of a bookmark. 44 std::string DescriptionFromBookmark(const BookmarkNode* node); 45 46 // Sets the URL of an image representative of the page. 47 // Expects the URL to be valid and not empty. 48 // Returns true if the metainfo is successfully populated. 49 bool SetOriginalImageForBookmark(BookmarkModel* bookmark_model, 50 const BookmarkNode* node, 51 const GURL& url, 52 int width, 53 int height); 54 55 // Returns the url and dimensions of the original scraped image. 56 // Returns true if the out variables are populated, false otherwise. 57 bool OriginalImageFromBookmark(const BookmarkNode* node, 58 GURL* url, 59 int* width, 60 int* height); 61 62 // Returns the url and dimensions of the server provided thumbnail image. 63 // Returns true if the out variables are populated, false otherwise. 64 bool ThumbnailImageFromBookmark(const BookmarkNode* node, 65 GURL* url, 66 int* width, 67 int* height); 68 69 // Returns a brief server provided synopsis of the bookmarked page. 70 // Returns the empty string if the snippet could not be extracted. 71 std::string SnippetFromBookmark(const BookmarkNode* node); 72 73 // Used for testing, simulates the process that creates the thumnails. Will 74 // remove existing entries for empty urls or set them if the url is not empty. 75 // expects valid or empty urls. Returns true if the metainfo is successfully 76 // populated. 77 bool SetAllImagesForBookmark(BookmarkModel* bookmark_model, 78 const BookmarkNode* node, 79 const GURL& image_url, 80 int image_width, 81 int image_height, 82 const GURL& thumbnail_url, 83 int thumbnail_width, 84 int thumbnail_height); 85 86 } // namespace enhanced_bookmarks 87 88 #endif // COMPONENTS_ENHANCED_BOOKMARKS_METADATA_ACCESSOR_H_ 89