Index: components/policy/core/browser/managed_bookmarks_tracker.h |
diff --git a/components/policy/core/browser/managed_bookmarks_tracker.h b/components/policy/core/browser/managed_bookmarks_tracker.h |
index c3553902203a24e7b9ffe4f435882453cdd3d530..965baa2ed5ebee92d6ad0fc08570748ac53e33f8 100644 |
--- a/components/policy/core/browser/managed_bookmarks_tracker.h |
+++ b/components/policy/core/browser/managed_bookmarks_tracker.h |
@@ -26,8 +26,10 @@ class BookmarkPermanentNode; |
namespace policy { |
-// Tracks the Managed Bookmarks policy value and makes the managed_node() in |
-// the BookmarkModel follow the policy-defined bookmark tree. |
+// Tracks either the Managed Bookmarks pref (set by policy) or the Supervised |
+// Bookmarks pref (set for a supervised user by their custodian) and makes the |
+// managed_node()/supervised_node() in the BookmarkModel follow the |
+// policy/custodian-defined bookmark tree. |
class POLICY_EXPORT ManagedBookmarksTracker { |
public: |
typedef base::Callback<std::string()> GetManagementDomainCallback; |
@@ -37,8 +39,11 @@ class POLICY_EXPORT ManagedBookmarksTracker { |
static const char kUrl[]; |
static const char kChildren[]; |
+ // If |is_supervised| is true, this will track supervised bookmarks rather |
+ // than managed bookmarks. |
ManagedBookmarksTracker(bookmarks::BookmarkModel* model, |
PrefService* prefs, |
+ bool is_supervised, |
const GetManagementDomainCallback& callback); |
~ManagedBookmarksTracker(); |
@@ -46,19 +51,28 @@ class POLICY_EXPORT ManagedBookmarksTracker { |
// LoadInitial() to do the initial load. |
scoped_ptr<base::ListValue> GetInitialManagedBookmarks(); |
- // Loads the initial managed bookmarks in |list| into |folder|. New nodes |
- // will be assigned IDs starting at |next_node_id|. |
+ // Loads the initial managed/supervised bookmarks in |list| into |folder|. |
+ // New nodes will be assigned IDs starting at |next_node_id|. |
// Returns the next node ID to use. |
static int64 LoadInitial(bookmarks::BookmarkNode* folder, |
const base::ListValue* list, |
int64 next_node_id); |
- // Starts tracking the policy for updates to the managed bookmarks. Should |
- // be called after loading the initial bookmarks. |
+ // Starts tracking the pref for updates to the managed/supervised bookmarks. |
+ // Should be called after loading the initial bookmarks. |
void Init(bookmarks::BookmarkPermanentNode* managed_node); |
+ bool is_supervised() const { return is_supervised_; } |
+ |
+ // Public for testing. |
+ static const char* GetPrefName(bool is_supervised); |
+ |
private: |
+ const char* GetPrefName() const; |
+ base::string16 GetBookmarksFolderTitle() const; |
+ |
void ReloadManagedBookmarks(); |
+ |
void UpdateBookmarks(const bookmarks::BookmarkNode* folder, |
const base::ListValue* list); |
static bool LoadBookmark(const base::ListValue* list, |
@@ -68,6 +82,7 @@ class POLICY_EXPORT ManagedBookmarksTracker { |
const base::ListValue** children); |
bookmarks::BookmarkModel* model_; |
+ const bool is_supervised_; |
bookmarks::BookmarkPermanentNode* managed_node_; |
PrefService* prefs_; |
PrefChangeRegistrar registrar_; |