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 |