| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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_CHROME_BOOKMARK_CLIENT_H_ | 5 #ifndef CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_ |
| 6 #define CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_ | 6 #define CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_ |
| 7 | 7 |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/callback_list.h" | |
| 12 #include "base/deferred_sequenced_task_runner.h" | 11 #include "base/deferred_sequenced_task_runner.h" |
| 13 #include "base/macros.h" | 12 #include "base/macros.h" |
| 14 #include "components/bookmarks/browser/base_bookmark_model_observer.h" | 13 #include "components/bookmarks/browser/base_bookmark_model_observer.h" |
| 15 #include "components/bookmarks/browser/bookmark_client.h" | 14 #include "components/bookmarks/browser/bookmark_client.h" |
| 16 | 15 |
| 17 class GURL; | 16 class GURL; |
| 18 class HistoryServiceFactory; | |
| 19 class Profile; | 17 class Profile; |
| 20 | 18 |
| 21 namespace base { | 19 namespace base { |
| 22 class ListValue; | 20 class ListValue; |
| 23 } | 21 } |
| 24 | 22 |
| 25 namespace bookmarks { | 23 namespace bookmarks { |
| 26 class BookmarkModel; | 24 class BookmarkModel; |
| 27 class BookmarkNode; | 25 class BookmarkNode; |
| 28 class BookmarkPermanentNode; | 26 class BookmarkPermanentNode; |
| 29 class ManagedBookmarksTracker; | 27 class ManagedBookmarksTracker; |
| 30 } | 28 } |
| 31 | 29 |
| 32 namespace history { | |
| 33 class HistoryService; | |
| 34 } | |
| 35 | |
| 36 class ChromeBookmarkClient : public bookmarks::BookmarkClient, | 30 class ChromeBookmarkClient : public bookmarks::BookmarkClient, |
| 37 public bookmarks::BaseBookmarkModelObserver { | 31 public bookmarks::BaseBookmarkModelObserver { |
| 38 public: | 32 public: |
| 39 explicit ChromeBookmarkClient(Profile* profile); | 33 explicit ChromeBookmarkClient(Profile* profile); |
| 40 ~ChromeBookmarkClient() override; | 34 ~ChromeBookmarkClient() override; |
| 41 | 35 |
| 42 void Init(bookmarks::BookmarkModel* model); | 36 void Init(bookmarks::BookmarkModel* model); |
| 43 | 37 |
| 44 // KeyedService: | 38 // KeyedService: |
| 45 void Shutdown() override; | 39 void Shutdown() override; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 64 bool IsPermanentNodeVisible( | 58 bool IsPermanentNodeVisible( |
| 65 const bookmarks::BookmarkPermanentNode* node) override; | 59 const bookmarks::BookmarkPermanentNode* node) override; |
| 66 void RecordAction(const base::UserMetricsAction& action) override; | 60 void RecordAction(const base::UserMetricsAction& action) override; |
| 67 bookmarks::LoadExtraCallback GetLoadExtraNodesCallback() override; | 61 bookmarks::LoadExtraCallback GetLoadExtraNodesCallback() override; |
| 68 bool CanSetPermanentNodeTitle( | 62 bool CanSetPermanentNodeTitle( |
| 69 const bookmarks::BookmarkNode* permanent_node) override; | 63 const bookmarks::BookmarkNode* permanent_node) override; |
| 70 bool CanSyncNode(const bookmarks::BookmarkNode* node) override; | 64 bool CanSyncNode(const bookmarks::BookmarkNode* node) override; |
| 71 bool CanBeEditedByUser(const bookmarks::BookmarkNode* node) override; | 65 bool CanBeEditedByUser(const bookmarks::BookmarkNode* node) override; |
| 72 | 66 |
| 73 private: | 67 private: |
| 74 friend class HistoryServiceFactory; | |
| 75 void SetHistoryService(history::HistoryService* history_service); | |
| 76 | |
| 77 // bookmarks::BaseBookmarkModelObserver: | 68 // bookmarks::BaseBookmarkModelObserver: |
| 78 void BookmarkModelChanged() override; | 69 void BookmarkModelChanged() override; |
| 79 void BookmarkNodeRemoved(bookmarks::BookmarkModel* model, | 70 |
| 80 const bookmarks::BookmarkNode* parent, | 71 // bookmarks::BookmarkModelObserver: |
| 81 int old_index, | |
| 82 const bookmarks::BookmarkNode* node, | |
| 83 const std::set<GURL>& removed_urls) override; | |
| 84 void BookmarkAllUserNodesRemoved(bookmarks::BookmarkModel* model, | |
| 85 const std::set<GURL>& removed_urls) override; | |
| 86 void BookmarkModelLoaded(bookmarks::BookmarkModel* model, | 72 void BookmarkModelLoaded(bookmarks::BookmarkModel* model, |
| 87 bool ids_reassigned) override; | 73 bool ids_reassigned) override; |
| 88 | 74 |
| 89 // Helper for GetLoadExtraNodesCallback(). | 75 // Helper for GetLoadExtraNodesCallback(). |
| 90 static bookmarks::BookmarkPermanentNodeList LoadExtraNodes( | 76 static bookmarks::BookmarkPermanentNodeList LoadExtraNodes( |
| 91 scoped_ptr<bookmarks::BookmarkPermanentNode> managed_node, | 77 scoped_ptr<bookmarks::BookmarkPermanentNode> managed_node, |
| 92 scoped_ptr<base::ListValue> initial_managed_bookmarks, | 78 scoped_ptr<base::ListValue> initial_managed_bookmarks, |
| 93 scoped_ptr<bookmarks::BookmarkPermanentNode> supervised_node, | 79 scoped_ptr<bookmarks::BookmarkPermanentNode> supervised_node, |
| 94 scoped_ptr<base::ListValue> initial_supervised_bookmarks, | 80 scoped_ptr<base::ListValue> initial_supervised_bookmarks, |
| 95 int64* next_node_id); | 81 int64* next_node_id); |
| 96 | 82 |
| 97 // Returns the management domain that configured the managed bookmarks, | 83 // Returns the management domain that configured the managed bookmarks, |
| 98 // or an empty string. | 84 // or an empty string. |
| 99 std::string GetManagedBookmarksDomain(); | 85 std::string GetManagedBookmarksDomain(); |
| 100 | 86 |
| 101 Profile* profile_; | 87 Profile* profile_; |
| 102 | 88 |
| 103 // HistoryService associated to the Profile. Due to circular dependency, this | |
| 104 // cannot be passed to the constructor, nor lazily fetched. Instead the value | |
| 105 // is initialized from HistoryServiceFactory. | |
| 106 history::HistoryService* history_service_; | |
| 107 | |
| 108 scoped_ptr<base::CallbackList<void(const std::set<GURL>&)>::Subscription> | |
| 109 favicon_changed_subscription_; | |
| 110 | |
| 111 // Pointer to the BookmarkModel. Will be non-NULL from the call to Init to | 89 // Pointer to the BookmarkModel. Will be non-NULL from the call to Init to |
| 112 // the call to Shutdown. Must be valid for the whole interval. | 90 // the call to Shutdown. Must be valid for the whole interval. |
| 113 bookmarks::BookmarkModel* model_; | 91 bookmarks::BookmarkModel* model_; |
| 114 | 92 |
| 115 // Managed bookmarks are defined by an enterprise policy. | 93 // Managed bookmarks are defined by an enterprise policy. |
| 116 scoped_ptr<bookmarks::ManagedBookmarksTracker> managed_bookmarks_tracker_; | 94 scoped_ptr<bookmarks::ManagedBookmarksTracker> managed_bookmarks_tracker_; |
| 117 // The top-level managed bookmarks folder. | 95 // The top-level managed bookmarks folder. |
| 118 bookmarks::BookmarkPermanentNode* managed_node_; | 96 bookmarks::BookmarkPermanentNode* managed_node_; |
| 119 | 97 |
| 120 // Supervised bookmarks are defined by the custodian of a supervised user. | 98 // Supervised bookmarks are defined by the custodian of a supervised user. |
| 121 scoped_ptr<bookmarks::ManagedBookmarksTracker> supervised_bookmarks_tracker_; | 99 scoped_ptr<bookmarks::ManagedBookmarksTracker> supervised_bookmarks_tracker_; |
| 122 // The top-level supervised bookmarks folder. | 100 // The top-level supervised bookmarks folder. |
| 123 bookmarks::BookmarkPermanentNode* supervised_node_; | 101 bookmarks::BookmarkPermanentNode* supervised_node_; |
| 124 | 102 |
| 125 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClient); | 103 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClient); |
| 126 }; | 104 }; |
| 127 | 105 |
| 128 #endif // CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_ | 106 #endif // CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_ |
| OLD | NEW |