summaryrefslogtreecommitdiffstats
path: root/chrome/browser/bookmarks/chrome_bookmark_client.h
diff options
context:
space:
mode:
authorjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-06 10:44:36 +0000
committerjoaodasilva@chromium.org <joaodasilva@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-06 10:44:36 +0000
commit80bc8a08d44568118d4614b61cf942c6e1bc3263 (patch)
tree689949add3a4d8acb3b5780d39ee0eb08ebc6cea /chrome/browser/bookmarks/chrome_bookmark_client.h
parent91fafe9e8a20336ac609058f4aa22206167eede6 (diff)
downloadchromium_src-80bc8a08d44568118d4614b61cf942c6e1bc3263.zip
chromium_src-80bc8a08d44568118d4614b61cf942c6e1bc3263.tar.gz
chromium_src-80bc8a08d44568118d4614b61cf942c6e1bc3263.tar.bz2
Create the managed_node at the ChromeBookmarkClient.
This change wires the ManagedBookmarksTracker to the ChromeBookmarkClient. The tracker keeps the new managed_node in sync with the ManagedBookmarks policy, and the ChromeBookmarkClient publishes that node as an extra node for the BookmarkModel. Also cleaned up some duplicated constants used by the managed bookmarks code. BUG=49598 Review URL: https://codereview.chromium.org/319543003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275382 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/bookmarks/chrome_bookmark_client.h')
-rw-r--r--chrome/browser/bookmarks/chrome_bookmark_client.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.h b/chrome/browser/bookmarks/chrome_bookmark_client.h
index 512178b..de67a1b 100644
--- a/chrome/browser/bookmarks/chrome_bookmark_client.h
+++ b/chrome/browser/bookmarks/chrome_bookmark_client.h
@@ -6,9 +6,12 @@
#define CHROME_BROWSER_BOOKMARKS_CHROME_BOOKMARK_CLIENT_H_
#include "base/compiler_specific.h"
+#include "base/deferred_sequenced_task_runner.h"
+#include "base/memory/ref_counted.h"
#include "components/bookmarks/browser/base_bookmark_model_observer.h"
#include "components/bookmarks/browser/bookmark_client.h"
#include "components/keyed_service/core/keyed_service.h"
+#include "components/policy/core/browser/managed_bookmarks_tracker.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
@@ -28,6 +31,12 @@ class ChromeBookmarkClient : public BookmarkClient,
// Returns the BookmarkModel that corresponds to this ChromeBookmarkClient.
BookmarkModel* model() { return model_.get(); }
+ // Returns the managed_node.
+ const BookmarkNode* managed_node() { return managed_node_; }
+
+ // Returns true if the given node belongs to the managed bookmarks tree.
+ bool IsDescendantOfManagedNode(const BookmarkNode* node);
+
// BookmarkClient:
virtual bool PreferTouchIcon() OVERRIDE;
virtual base::CancelableTaskTracker::TaskId GetFaviconImageForURL(
@@ -70,9 +79,19 @@ class ChromeBookmarkClient : public BookmarkClient,
virtual void BookmarkAllNodesRemoved(
BookmarkModel* model,
const std::set<GURL>& removed_urls) OVERRIDE;
+ virtual void BookmarkModelLoaded(BookmarkModel* model,
+ bool ids_reassigned) OVERRIDE;
// Helper for GetLoadExtraNodesCallback().
- static bookmarks::BookmarkPermanentNodeList LoadExtraNodes(int64* next_id);
+ static bookmarks::BookmarkPermanentNodeList LoadExtraNodes(
+ const scoped_refptr<base::DeferredSequencedTaskRunner>& profile_io_runner,
+ BookmarkPermanentNode* managed_node,
+ scoped_ptr<base::ListValue> initial_managed_bookmarks,
+ int64* next_node_id);
+
+ // Returns the management domain that configured the managed bookmarks,
+ // or an empty string.
+ std::string GetManagedBookmarksDomain();
Profile* profile_;
@@ -80,6 +99,9 @@ class ChromeBookmarkClient : public BookmarkClient,
scoped_ptr<BookmarkModel> model_;
+ policy::ManagedBookmarksTracker managed_bookmarks_tracker_;
+ BookmarkPermanentNode* managed_node_;
+
DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClient);
};