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

Unified Diff: components/bookmarks/managed/managed_bookmark_service.h

Issue 1233673002: Fix componentization of chrome/browser/bookmarks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix "gn check" and compilation on Mac Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/bookmarks/managed/BUILD.gn ('k') | components/bookmarks/managed/managed_bookmark_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/bookmarks/managed/managed_bookmark_service.h
diff --git a/components/bookmarks/managed/managed_bookmark_service.h b/components/bookmarks/managed/managed_bookmark_service.h
new file mode 100644
index 0000000000000000000000000000000000000000..8841c0deeef52e973fcb4734c77e9591c95e2717
--- /dev/null
+++ b/components/bookmarks/managed/managed_bookmark_service.h
@@ -0,0 +1,102 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_BOOKMARKS_MANAGED_MANAGED_BOOKMARK_SERVICE_H_
+#define COMPONENTS_BOOKMARKS_MANAGED_MANAGED_BOOKMARK_SERVICE_H_
+
+#include <string>
+
+#include "base/callback_forward.h"
+#include "base/macros.h"
+#include "base/memory/scoped_ptr.h"
+#include "components/bookmarks/browser/base_bookmark_model_observer.h"
+#include "components/bookmarks/browser/bookmark_node.h"
+#include "components/bookmarks/browser/bookmark_storage.h"
+#include "components/keyed_service/core/keyed_service.h"
+
+class PrefService;
+
+namespace bookmarks {
+
+class BookmarkModel;
+class ManagedBookmarksTracker;
+
+// ManagedBookmarkService manages the bookmark folder controlled by enterprise
+// policy or custodian of supervised users.
+class ManagedBookmarkService : public KeyedService,
+ public BaseBookmarkModelObserver {
+ public:
+ typedef base::Callback<std::string()> GetManagementDomainCallback;
+
+ ManagedBookmarkService(PrefService* prefs,
+ const GetManagementDomainCallback& callback);
+ ~ManagedBookmarkService() override;
+
+ // Called upon creation of the BookmarkModel.
+ void BookmarkModelCreated(BookmarkModel* bookmark_model);
+
+ // Returns a task that will be used to load any additional root nodes. This
+ // task will be invoked in the Profile's IO task runner.
+ LoadExtraCallback GetLoadExtraNodesCallback();
+
+ // Returns true if the |node| can have its title updated.
+ bool CanSetPermanentNodeTitle(const BookmarkNode* node);
+
+ // Returns true if |node| should sync.
+ bool CanSyncNode(const BookmarkNode* node);
+
+ // Returns true if |node| can be edited by the user.
+ // TODO(joaodasilva): the model should check this more aggressively, and
+ // should give the client a means to temporarily disable those checks.
+ // http://crbug.com/49598
+ bool CanBeEditedByUser(const BookmarkNode* node);
+
+ // Top-level managed bookmarks folder, defined by an enterprise policy; may be
+ // null.
+ const BookmarkNode* managed_node() { return managed_node_; }
+
+ // Top-level supervised bookmarks folder, defined by the custodian of a
+ // supervised user; may be null.
+ const BookmarkNode* supervised_node() { return supervised_node_; }
+
+ private:
+ // KeyedService implementation.
+ void Shutdown() override;
+
+ // BaseBookmarkModelObserver implementation.
+ void BookmarkModelChanged() override;
+
+ // BookmarkModelObserver implementation.
+ void BookmarkModelLoaded(bookmarks::BookmarkModel* bookmark_model,
+ bool ids_reassigned) override;
+ void BookmarkModelBeingDeleted(BookmarkModel* bookmark_model) override;
+
+ // Cleanup, called when service is shutdown or when BookmarkModel is being
+ // destroyed.
+ void Cleanup();
+
+ // Pointer to the PrefService. Must outlive ManagedBookmarkService.
+ PrefService* prefs_;
+
+ // Pointer to the BookmarkModel; may be null. Only valid between the calls to
+ // BookmarkModelCreated() and to BookmarkModelBeingDestroyed().
+ BookmarkModel* bookmark_model_;
+
+ // Managed bookmarks are defined by an enterprise policy. The lifetime of the
+ // BookmarkPermanentNode is controlled by BookmarkModel.
+ scoped_ptr<ManagedBookmarksTracker> managed_bookmarks_tracker_;
+ GetManagementDomainCallback managed_domain_callback_;
+ BookmarkPermanentNode* managed_node_;
+
+ // Supervised bookmarks are defined by the custodian of a supervised user. The
+ // lifetime of the BookmarkPermanentNode is controlled by BookmarkModel.
+ scoped_ptr<ManagedBookmarksTracker> supervised_bookmarks_tracker_;
+ BookmarkPermanentNode* supervised_node_;
+
+ DISALLOW_COPY_AND_ASSIGN(ManagedBookmarkService);
+};
+
+} // namespace bookmarks
+
+#endif // COMPONENTS_BOOKMARKS_MANAGED_MANAGED_BOOKMARK_SERVICE_H_
« no previous file with comments | « components/bookmarks/managed/BUILD.gn ('k') | components/bookmarks/managed/managed_bookmark_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698