| 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" | |
| 15 #include "components/bookmarks/browser/bookmark_client.h" | 13 #include "components/bookmarks/browser/bookmark_client.h" |
| 14 #include "components/bookmarks/browser/bookmark_model_observer.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::BookmarkModelObserver { |
| 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; |
| 46 | 40 |
| 47 // The top-level managed bookmarks folder, defined by an enterprise policy. | 41 // The top-level managed bookmarks folder, defined by an enterprise policy. |
| (...skipping 16 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; | 68 // bookmarks::BookmarkModelObserver: |
| 75 void SetHistoryService(history::HistoryService* history_service); | |
| 76 | |
| 77 // bookmarks::BaseBookmarkModelObserver: | |
| 78 void BookmarkModelChanged() override; | |
| 79 void BookmarkNodeRemoved(bookmarks::BookmarkModel* model, | |
| 80 const bookmarks::BookmarkNode* parent, | |
| 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, | 69 void BookmarkModelLoaded(bookmarks::BookmarkModel* model, |
| 87 bool ids_reassigned) override; | 70 bool ids_reassigned) override; |
| 88 | 71 |
| 89 // Helper for GetLoadExtraNodesCallback(). | 72 // Helper for GetLoadExtraNodesCallback(). |
| 90 static bookmarks::BookmarkPermanentNodeList LoadExtraNodes( | 73 static bookmarks::BookmarkPermanentNodeList LoadExtraNodes( |
| 91 scoped_ptr<bookmarks::BookmarkPermanentNode> managed_node, | 74 scoped_ptr<bookmarks::BookmarkPermanentNode> managed_node, |
| 92 scoped_ptr<base::ListValue> initial_managed_bookmarks, | 75 scoped_ptr<base::ListValue> initial_managed_bookmarks, |
| 93 scoped_ptr<bookmarks::BookmarkPermanentNode> supervised_node, | 76 scoped_ptr<bookmarks::BookmarkPermanentNode> supervised_node, |
| 94 scoped_ptr<base::ListValue> initial_supervised_bookmarks, | 77 scoped_ptr<base::ListValue> initial_supervised_bookmarks, |
| 95 int64* next_node_id); | 78 int64* next_node_id); |
| 96 | 79 |
| 97 // Returns the management domain that configured the managed bookmarks, | 80 // Returns the management domain that configured the managed bookmarks, |
| 98 // or an empty string. | 81 // or an empty string. |
| 99 std::string GetManagedBookmarksDomain(); | 82 std::string GetManagedBookmarksDomain(); |
| 100 | 83 |
| 101 Profile* profile_; | 84 Profile* profile_; |
| 102 | 85 |
| 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 | 86 // 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. | 87 // the call to Shutdown. Must be valid for the whole interval. |
| 113 bookmarks::BookmarkModel* model_; | 88 bookmarks::BookmarkModel* model_; |
| 114 | 89 |
| 115 // Managed bookmarks are defined by an enterprise policy. | 90 // Managed bookmarks are defined by an enterprise policy. |
| 116 scoped_ptr<bookmarks::ManagedBookmarksTracker> managed_bookmarks_tracker_; | 91 scoped_ptr<bookmarks::ManagedBookmarksTracker> managed_bookmarks_tracker_; |
| 117 // The top-level managed bookmarks folder. | 92 // The top-level managed bookmarks folder. |
| 118 bookmarks::BookmarkPermanentNode* managed_node_; | 93 bookmarks::BookmarkPermanentNode* managed_node_; |
| 119 | 94 |
| 120 // Supervised bookmarks are defined by the custodian of a supervised user. | 95 // Supervised bookmarks are defined by the custodian of a supervised user. |
| 121 scoped_ptr<bookmarks::ManagedBookmarksTracker> supervised_bookmarks_tracker_; | 96 scoped_ptr<bookmarks::ManagedBookmarksTracker> supervised_bookmarks_tracker_; |
| 122 // The top-level supervised bookmarks folder. | 97 // The top-level supervised bookmarks folder. |
| 123 bookmarks::BookmarkPermanentNode* supervised_node_; | 98 bookmarks::BookmarkPermanentNode* supervised_node_; |
| 124 | 99 |
| 125 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClient); | 100 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClient); |
| 126 }; | 101 }; |
| 127 | 102 |
| 128 #endif // CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_ | 103 #endif // CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_ |
| OLD | NEW |