Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(437)

Side by Side Diff: chrome/browser/bookmarks/chrome_bookmark_client.h

Issue 1205603002: Remove dependency of HistoryServiceFactory on ChromeBookmarkClientFactory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@split_history_client
Patch Set: Fix unit_tests on android (only register as BookmarkModelObserver if HistoryService is initialized) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/bookmarks/chrome_bookmark_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/bookmarks/chrome_bookmark_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698