Home | History | Annotate | Download | only in enhanced_bookmarks
      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