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