| Index: chrome/browser/bookmarks/chrome_bookmark_client.cc
|
| diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
| index a3ca17a783545e887cc048085eb02816f16de113..d08a72a3b242d8fe6da592b132bb119c73401e99 100644
|
| --- a/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
| +++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc
|
| @@ -63,10 +63,7 @@ void LoadInitialContents(BookmarkPermanentNode* node,
|
| } // namespace
|
|
|
| ChromeBookmarkClient::ChromeBookmarkClient(Profile* profile)
|
| - : profile_(profile),
|
| - model_(nullptr),
|
| - managed_node_(nullptr),
|
| - supervised_node_(nullptr) {
|
| + : profile_(profile) {
|
| }
|
|
|
| ChromeBookmarkClient::~ChromeBookmarkClient() {
|
| @@ -74,39 +71,19 @@ ChromeBookmarkClient::~ChromeBookmarkClient() {
|
|
|
| void ChromeBookmarkClient::Init(BookmarkModel* model) {
|
| DCHECK(model);
|
| - DCHECK(!model_);
|
| - model_ = model;
|
| - model_->AddObserver(this);
|
| -
|
| managed_bookmarks_tracker_.reset(new ManagedBookmarksTracker(
|
| - model_,
|
| + model,
|
| profile_->GetPrefs(),
|
| false,
|
| base::Bind(&ChromeBookmarkClient::GetManagedBookmarksDomain,
|
| base::Unretained(this))));
|
| supervised_bookmarks_tracker_.reset(new ManagedBookmarksTracker(
|
| - model_,
|
| + model,
|
| profile_->GetPrefs(),
|
| true,
|
| base::Callback<std::string()>()));
|
| }
|
|
|
| -void ChromeBookmarkClient::Shutdown() {
|
| - if (model_) {
|
| - model_->RemoveObserver(this);
|
| - model_ = nullptr;
|
| - }
|
| - BookmarkClient::Shutdown();
|
| -}
|
| -
|
| -bool ChromeBookmarkClient::PreferTouchIcon() {
|
| -#if !defined(OS_IOS)
|
| - return false;
|
| -#else
|
| - return true;
|
| -#endif
|
| -}
|
| -
|
| base::CancelableTaskTracker::TaskId
|
| ChromeBookmarkClient::GetFaviconImageForPageURL(
|
| const GURL& page_url,
|
| @@ -158,79 +135,31 @@ void ChromeBookmarkClient::GetTypedCountForNodes(
|
| }
|
| }
|
|
|
| -bool ChromeBookmarkClient::IsPermanentNodeVisible(
|
| - const BookmarkPermanentNode* node) {
|
| - DCHECK(node->type() == BookmarkNode::BOOKMARK_BAR ||
|
| - node->type() == BookmarkNode::OTHER_NODE ||
|
| - node->type() == BookmarkNode::MOBILE ||
|
| - node == managed_node_ ||
|
| - node == supervised_node_);
|
| - if (node == managed_node_ || node == supervised_node_)
|
| - return false;
|
| -#if !defined(OS_IOS)
|
| - return node->type() != BookmarkNode::MOBILE;
|
| -#else
|
| - return node->type() == BookmarkNode::MOBILE;
|
| -#endif
|
| -}
|
| -
|
| void ChromeBookmarkClient::RecordAction(const base::UserMetricsAction& action) {
|
| content::RecordAction(action);
|
| }
|
|
|
| -bookmarks::LoadExtraCallback ChromeBookmarkClient::GetLoadExtraNodesCallback() {
|
| - // Create the managed_node_ and supervised_node_ with a temporary ID of 0 now.
|
| - // They will be populated (and assigned proper IDs) in the LoadExtraNodes
|
| - // callback.
|
| - // The ownership of managed_node_ and supervised_node_ is in limbo until
|
| - // LoadExtraNodes runs, so we leave them in the care of the closure meanwhile.
|
| - scoped_ptr<BookmarkPermanentNode> managed(new BookmarkPermanentNode(0));
|
| - managed_node_ = managed.get();
|
| - scoped_ptr<BookmarkPermanentNode> supervised(new BookmarkPermanentNode(0));
|
| - supervised_node_ = supervised.get();
|
| -
|
| +bookmarks::LoadExtraCallback ChromeBookmarkClient::GetLoadExtraNodesCallback(
|
| + scoped_ptr<bookmarks::BookmarkPermanentNode> managed_node,
|
| + scoped_ptr<bookmarks::BookmarkPermanentNode> supervised_node,
|
| + const ExtraNodeLoadedCallback& callback) {
|
| return base::Bind(
|
| &ChromeBookmarkClient::LoadExtraNodes,
|
| - base::Passed(&managed),
|
| + base::Passed(&managed_node),
|
| base::Passed(managed_bookmarks_tracker_->GetInitialManagedBookmarks()),
|
| - base::Passed(&supervised),
|
| - base::Passed(
|
| - supervised_bookmarks_tracker_->GetInitialManagedBookmarks()));
|
| + base::Passed(&supervised_node),
|
| + base::Passed(supervised_bookmarks_tracker_->GetInitialManagedBookmarks()),
|
| + callback);
|
| }
|
|
|
| -bool ChromeBookmarkClient::CanSetPermanentNodeTitle(
|
| - const BookmarkNode* permanent_node) {
|
| - // The |managed_node_| can have its title updated if the user signs in or
|
| - // out, since the name of the managed domain can appear in it.
|
| - // Also, both |managed_node_| and |supervised_node_| can have their title
|
| - // updated on locale changes (crbug.com/459448).
|
| - return (!bookmarks::IsDescendantOf(permanent_node, managed_node_) &&
|
| - !bookmarks::IsDescendantOf(permanent_node, supervised_node_)) ||
|
| - permanent_node == managed_node_ ||
|
| - permanent_node == supervised_node_;
|
| -}
|
| -
|
| -bool ChromeBookmarkClient::CanSyncNode(const BookmarkNode* node) {
|
| - return !bookmarks::IsDescendantOf(node, managed_node_) &&
|
| - !bookmarks::IsDescendantOf(node, supervised_node_);
|
| -}
|
| -
|
| -bool ChromeBookmarkClient::CanBeEditedByUser(const BookmarkNode* node) {
|
| - return !bookmarks::IsDescendantOf(node, managed_node_) &&
|
| - !bookmarks::IsDescendantOf(node, supervised_node_);
|
| -}
|
| -
|
| -void ChromeBookmarkClient::BookmarkModelChanged() {
|
| -}
|
| -
|
| -void ChromeBookmarkClient::BookmarkModelLoaded(BookmarkModel* model,
|
| - bool ids_reassigned) {
|
| - BaseBookmarkModelObserver::BookmarkModelLoaded(model, ids_reassigned);
|
| +void ChromeBookmarkClient::DoneLoading(
|
| + bookmarks::BookmarkPermanentNode* managed_node,
|
| + bookmarks::BookmarkPermanentNode* supervised_node) {
|
| // Start tracking the managed and supervised bookmarks. This will detect any
|
| // changes that may have occurred while the initial managed and supervised
|
| // bookmarks were being loaded on the background.
|
| - managed_bookmarks_tracker_->Init(managed_node_);
|
| - supervised_bookmarks_tracker_->Init(supervised_node_);
|
| + managed_bookmarks_tracker_->Init(managed_node);
|
| + supervised_bookmarks_tracker_->Init(supervised_node);
|
| }
|
|
|
| // static
|
| @@ -239,6 +168,7 @@ bookmarks::BookmarkPermanentNodeList ChromeBookmarkClient::LoadExtraNodes(
|
| scoped_ptr<base::ListValue> initial_managed_bookmarks,
|
| scoped_ptr<BookmarkPermanentNode> supervised_node,
|
| scoped_ptr<base::ListValue> initial_supervised_bookmarks,
|
| + const ExtraNodeLoadedCallback& callback,
|
| int64* next_node_id) {
|
| LoadInitialContents(
|
| managed_node.get(), initial_managed_bookmarks.get(), next_node_id);
|
| @@ -250,8 +180,11 @@ bookmarks::BookmarkPermanentNodeList ChromeBookmarkClient::LoadExtraNodes(
|
| supervised_node->SetTitle(l10n_util::GetStringUTF16(
|
| IDS_BOOKMARK_BAR_SUPERVISED_FOLDER_DEFAULT_NAME));
|
|
|
| - bookmarks::BookmarkPermanentNodeList extra_nodes;
|
| + if (!callback.is_null())
|
| + callback.Run(managed_node.get(), supervised_node.get());
|
| +
|
| // Ownership of the managed and supervised nodes passed to the caller.
|
| + bookmarks::BookmarkPermanentNodeList extra_nodes;
|
| extra_nodes.push_back(managed_node.release());
|
| extra_nodes.push_back(supervised_node.release());
|
|
|
|
|