| 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_; | 
|  |