| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ | 5 #ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ |
| 6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ | 6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "content/public/browser/notification_observer.h" | 25 #include "content/public/browser/notification_observer.h" |
| 26 #include "content/public/browser/notification_registrar.h" | 26 #include "content/public/browser/notification_registrar.h" |
| 27 #include "ui/gfx/image/image.h" | 27 #include "ui/gfx/image/image.h" |
| 28 #include "url/gurl.h" | 28 #include "url/gurl.h" |
| 29 | 29 |
| 30 class BookmarkExpandedStateTracker; | 30 class BookmarkExpandedStateTracker; |
| 31 class BookmarkIndex; | 31 class BookmarkIndex; |
| 32 class BookmarkLoadDetails; | 32 class BookmarkLoadDetails; |
| 33 class BookmarkModelObserver; | 33 class BookmarkModelObserver; |
| 34 class BookmarkStorage; | 34 class BookmarkStorage; |
| 35 struct BookmarkTitleMatch; | 35 struct BookmarkMatch; |
| 36 class Profile; | 36 class Profile; |
| 37 class ScopedGroupBookmarkActions; | 37 class ScopedGroupBookmarkActions; |
| 38 | 38 |
| 39 namespace base { | 39 namespace base { |
| 40 class SequencedTaskRunner; | 40 class SequencedTaskRunner; |
| 41 } | 41 } |
| 42 | 42 |
| 43 namespace chrome { | 43 namespace chrome { |
| 44 struct FaviconImageResult; | 44 struct FaviconImageResult; |
| 45 } | 45 } |
| 46 | 46 |
| 47 // BookmarkModel -------------------------------------------------------------- | 47 // BookmarkModel -------------------------------------------------------------- |
| 48 | 48 |
| 49 // BookmarkModel provides a directed acyclic graph of URLs and folders. | 49 // BookmarkModel provides a directed acyclic graph of URLs and folders. |
| 50 // Three graphs are provided for the three entry points: those on the 'bookmarks | 50 // Three graphs are provided for the three entry points: those on the 'bookmarks |
| 51 // bar', those in the 'other bookmarks' folder and those in the 'mobile' folder. | 51 // bar', those in the 'other bookmarks' folder and those in the 'mobile' folder. |
| 52 // | 52 // |
| 53 // An observer may be attached to observe relevant events. | 53 // An observer may be attached to observe relevant events. |
| 54 // | 54 // |
| 55 // You should NOT directly create a BookmarkModel, instead go through the | 55 // You should NOT directly create a BookmarkModel, instead go through the |
| 56 // BookmarkModelFactory. | 56 // BookmarkModelFactory. |
| 57 class BookmarkModel : public content::NotificationObserver, | 57 class BookmarkModel : public content::NotificationObserver, |
| 58 public BookmarkService, | 58 public BookmarkService, |
| 59 public KeyedService { | 59 public KeyedService { |
| 60 public: | 60 public: |
| 61 explicit BookmarkModel(Profile* profile); | 61 // |index_urls| says whether URLs should be stored in the BookmarkIndex |
| 62 // in addition to bookmark titles. |
| 63 BookmarkModel(Profile* profile, bool index_urls); |
| 62 virtual ~BookmarkModel(); | 64 virtual ~BookmarkModel(); |
| 63 | 65 |
| 64 // Invoked prior to destruction to release any necessary resources. | 66 // Invoked prior to destruction to release any necessary resources. |
| 65 virtual void Shutdown() OVERRIDE; | 67 virtual void Shutdown() OVERRIDE; |
| 66 | 68 |
| 67 // Loads the bookmarks. This is called upon creation of the | 69 // Loads the bookmarks. This is called upon creation of the |
| 68 // BookmarkModel. You need not invoke this directly. | 70 // BookmarkModel. You need not invoke this directly. |
| 69 // All load operations will be executed on |task_runner|. | 71 // All load operations will be executed on |task_runner|. |
| 70 void Load(const scoped_refptr<base::SequencedTaskRunner>& task_runner); | 72 void Load(const scoped_refptr<base::SequencedTaskRunner>& task_runner); |
| 71 | 73 |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 const std::vector<const BookmarkNode*>& ordered_nodes); | 205 const std::vector<const BookmarkNode*>& ordered_nodes); |
| 204 | 206 |
| 205 // Sets the date when the folder was modified. | 207 // Sets the date when the folder was modified. |
| 206 void SetDateFolderModified(const BookmarkNode* node, const base::Time time); | 208 void SetDateFolderModified(const BookmarkNode* node, const base::Time time); |
| 207 | 209 |
| 208 // Resets the 'date modified' time of the node to 0. This is used during | 210 // Resets the 'date modified' time of the node to 0. This is used during |
| 209 // importing to exclude the newly created folders from showing up in the | 211 // importing to exclude the newly created folders from showing up in the |
| 210 // combobox of most recently modified folders. | 212 // combobox of most recently modified folders. |
| 211 void ResetDateFolderModified(const BookmarkNode* node); | 213 void ResetDateFolderModified(const BookmarkNode* node); |
| 212 | 214 |
| 213 void GetBookmarksWithTitlesMatching( | 215 // Returns up to |max_count| of bookmarks containing each term from |text| |
| 216 // in either the title or the URL. |
| 217 void GetBookmarksMatching( |
| 214 const base::string16& text, | 218 const base::string16& text, |
| 215 size_t max_count, | 219 size_t max_count, |
| 216 std::vector<BookmarkTitleMatch>* matches); | 220 std::vector<BookmarkMatch>* matches); |
| 217 | 221 |
| 218 // Sets the store to NULL, making it so the BookmarkModel does not persist | 222 // Sets the store to NULL, making it so the BookmarkModel does not persist |
| 219 // any changes to disk. This is only useful during testing to speed up | 223 // any changes to disk. This is only useful during testing to speed up |
| 220 // testing. | 224 // testing. |
| 221 void ClearStore(); | 225 void ClearStore(); |
| 222 | 226 |
| 223 // Returns the next node ID. | 227 // Returns the next node ID. |
| 224 int64 next_node_id() const { return next_node_id_; } | 228 int64 next_node_id() const { return next_node_id_; } |
| 225 | 229 |
| 226 // Returns the object responsible for tracking the set of expanded nodes in | 230 // Returns the object responsible for tracking the set of expanded nodes in |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 base::Lock url_lock_; | 382 base::Lock url_lock_; |
| 379 | 383 |
| 380 // Used for loading favicons. | 384 // Used for loading favicons. |
| 381 base::CancelableTaskTracker cancelable_task_tracker_; | 385 base::CancelableTaskTracker cancelable_task_tracker_; |
| 382 | 386 |
| 383 // Reads/writes bookmarks to disk. | 387 // Reads/writes bookmarks to disk. |
| 384 scoped_refptr<BookmarkStorage> store_; | 388 scoped_refptr<BookmarkStorage> store_; |
| 385 | 389 |
| 386 scoped_ptr<BookmarkIndex> index_; | 390 scoped_ptr<BookmarkIndex> index_; |
| 387 | 391 |
| 392 // True if URLs are stored in the BookmarkIndex in addition to bookmark |
| 393 // titles. |
| 394 const bool index_urls_; |
| 395 |
| 388 base::WaitableEvent loaded_signal_; | 396 base::WaitableEvent loaded_signal_; |
| 389 | 397 |
| 390 // See description of IsDoingExtensiveChanges above. | 398 // See description of IsDoingExtensiveChanges above. |
| 391 int extensive_changes_; | 399 int extensive_changes_; |
| 392 | 400 |
| 393 scoped_ptr<BookmarkExpandedStateTracker> expanded_state_tracker_; | 401 scoped_ptr<BookmarkExpandedStateTracker> expanded_state_tracker_; |
| 394 | 402 |
| 395 DISALLOW_COPY_AND_ASSIGN(BookmarkModel); | 403 DISALLOW_COPY_AND_ASSIGN(BookmarkModel); |
| 396 }; | 404 }; |
| 397 | 405 |
| 398 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ | 406 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_MODEL_H_ |
| OLD | NEW |