Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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_ENHANCED_BOOKMARK_MODEL_H_ | |
| 6 #define COMPONENTS_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_MODEL_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 | |
| 10 #include "base/strings/string16.h" | |
| 11 #include "components/bookmarks/browser/bookmark_node.h" | |
| 12 #include "components/keyed_service/core/keyed_service.h" | |
| 13 | |
| 14 namespace base { | |
| 15 class Time; | |
| 16 } // namespace base | |
| 17 | |
| 18 class BookmarkModel; | |
| 19 class GURL; | |
| 20 | |
| 21 namespace enhanced_bookmarks { | |
| 22 // Wrapper around BookmarkModel providing utility functions for enhanced | |
| 23 // bookmarks. | |
|
Mark
2014/09/03 23:31:16
I'm assuming everything around stars.userEdits wil
Rune Fevang
2014/09/04 01:03:13
Added stars.userEdit handling.
| |
| 24 class EnhancedBookmarkModel : public KeyedService { | |
| 25 public: | |
| 26 explicit EnhancedBookmarkModel(BookmarkModel* bookmark_model); | |
| 27 virtual ~EnhancedBookmarkModel(); | |
| 28 | |
| 29 void Initialize(const std::string& version); | |
| 30 | |
| 31 // Moves |node| to |new_parent| and inserts it at the given |index|. | |
| 32 void Move(const BookmarkNode* node, | |
| 33 const BookmarkNode* new_parent, | |
| 34 int index); | |
| 35 | |
| 36 // Adds a new folder node at the specified position. | |
| 37 const BookmarkNode* AddFolder(const BookmarkNode* parent, | |
| 38 int index, | |
| 39 const base::string16& title, | |
| 40 const BookmarkNode::MetaInfoMap* meta_info); | |
| 41 | |
| 42 // Adds a url at the specified position. | |
| 43 const BookmarkNode* AddURL(const BookmarkNode* parent, | |
| 44 int index, | |
| 45 const base::string16& title, | |
| 46 const GURL& url, | |
| 47 const base::Time& creation_time, | |
| 48 const BookmarkNode::MetaInfoMap* meta_info); | |
| 49 | |
| 50 // Returns the remote id for a bookmark. | |
| 51 std::string GetRemoteIdForNode(const BookmarkNode* node); | |
| 52 | |
| 53 // Sets the description of a bookmark. | |
| 54 void SetDescriptionForNode(const BookmarkNode* node, | |
| 55 const std::string& description); | |
| 56 | |
| 57 // Returns the description of a bookmark. | |
| 58 std::string GetDescriptionForNode(const BookmarkNode* node); | |
| 59 | |
| 60 // Sets the URL of an image representative of the page. | |
| 61 // Expects the URL to be valid and not empty. | |
| 62 // Returns true if the metainfo is successfully populated. | |
| 63 bool SetOriginalImageForNode(const BookmarkNode* node, | |
| 64 const GURL& url, | |
| 65 int width, | |
| 66 int height); | |
| 67 | |
| 68 // Returns the url and dimensions of the original scraped image. | |
| 69 // Returns true if the out variables are populated, false otherwise. | |
| 70 bool GetOriginalImageForNode(const BookmarkNode* node, | |
| 71 GURL* url, | |
| 72 int* width, | |
| 73 int* height); | |
| 74 | |
| 75 // Returns the url and dimensions of the server provided thumbnail image. | |
| 76 // Returns true if the out variables are populated, false otherwise. | |
| 77 bool GetThumbnailImageForNode(const BookmarkNode* node, | |
| 78 GURL* url, | |
| 79 int* width, | |
| 80 int* height); | |
| 81 | |
| 82 // Returns a brief server provided synopsis of the bookmarked page. | |
| 83 // Returns the empty string if the snippet could not be extracted. | |
| 84 std::string GetSnippetForNode(const BookmarkNode* node); | |
| 85 | |
| 86 // Returns the version of the last enhanced bookmark client to change this | |
| 87 // node. Returns the empty string if the node doesn't have one set. | |
|
Mark
2014/09/03 23:31:16
This should ONLY be used for debugging. The serve
Rune Fevang
2014/09/04 01:03:13
Moved the function to the test class.
| |
| 88 std::string GetVersionForNode(const BookmarkNode* node); | |
|
Mark
2014/09/03 23:31:16
Clients should be agnostic to this and this should
Rune Fevang
2014/09/04 01:03:13
Acknowledged.
| |
| 89 | |
| 90 // Used for testing, simulates the process that creates the thumnails. Will | |
|
Mark
2014/09/03 23:31:16
Nit: s/thumnails/thumbnails
Rune Fevang
2014/09/04 01:03:13
Done.
| |
| 91 // remove existing entries for empty urls or set them if the url is not empty. | |
| 92 // expects valid or empty urls. Returns true if the metainfo is successfully | |
|
Mark
2014/09/03 23:31:16
s/expects/Expects
Rune Fevang
2014/09/04 01:03:13
Done.
| |
| 93 // populated. | |
| 94 // TODO(rfevang): Move this to a testing only utility file. | |
| 95 static bool SetAllImagesForBookmark(BookmarkModel* bookmark_model, | |
| 96 const BookmarkNode* node, | |
| 97 const GURL& image_url, | |
| 98 int image_width, | |
| 99 int image_height, | |
| 100 const GURL& thumbnail_url, | |
| 101 int thumbnail_width, | |
| 102 int thumbnail_height); | |
| 103 | |
|
Mark
2014/09/03 23:31:16
Add TODO to add method for setting and getting the
Rune Fevang
2014/09/04 01:03:13
Getting and setting which flags?
Mark
2014/09/04 01:52:10
stars.flag. This could be handled by generic SetN
| |
| 104 private: | |
| 105 // Generates and sets a remote id for the given bookmark. Returns the id set. | |
| 106 std::string SetRemoteIdForNode(const BookmarkNode* node); | |
| 107 | |
| 108 // Helper method for setting a meta info field on a node. Also updates the | |
| 109 // version field. | |
| 110 void SetNodeMetaInfo(const BookmarkNode* node, | |
| 111 const std::string& field, | |
| 112 const std::string& value); | |
| 113 | |
| 114 BookmarkModel* bookmark_model_; | |
| 115 bool initialized_; | |
| 116 std::string version_; | |
| 117 }; | |
| 118 | |
| 119 } // namespace enhanced_bookmarks | |
| 120 | |
| 121 #endif // COMPONENTS_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_MODEL_H_ | |
| OLD | NEW |