Index: chrome/browser/android/bookmarks/bookmarks_bridge.cc |
diff --git a/chrome/browser/android/bookmarks/bookmarks_bridge.cc b/chrome/browser/android/bookmarks/bookmarks_bridge.cc |
index 128caa9fef6c686eb99b1cd5c1344d92f8240650..f13fda63de0183b575d95ea04bca005acab6cafc 100644 |
--- a/chrome/browser/android/bookmarks/bookmarks_bridge.cc |
+++ b/chrome/browser/android/bookmarks/bookmarks_bridge.cc |
@@ -231,6 +231,10 @@ void BookmarksBridge::GetTopLevelFolderIDs(JNIEnv* env, |
client_->managed_node()->child_count() > 0) { |
top_level_folders.push_back(client_->managed_node()); |
} |
+ if (client_->supervised_node() && |
+ client_->supervised_node()->child_count() > 0) { |
+ top_level_folders.push_back(client_->supervised_node()); |
+ } |
if (partner_bookmarks_shim_->HasPartnerBookmarks()) { |
top_level_folders.push_back( |
partner_bookmarks_shim_->GetPartnerBookmarksRoot()); |
@@ -469,8 +473,10 @@ void BookmarksBridge::GetAllBookmarkIDsOrderedByCreationDate( |
for (int i = 0; i < (*folder_iter)->child_count(); ++i) { |
const BookmarkNode* child = (*folder_iter)->GetChild(i); |
- if (!IsReachable(child) || client_->IsDescendantOfManagedNode(child)) |
+ if (!IsReachable(child) || |
+ client_->IsDescendantOfManagedOrSupervisedNode(child)) { |
continue; |
+ } |
if (child->is_folder()) { |
insert_iter = folders.insert(insert_iter, child); |
@@ -871,6 +877,10 @@ bool BookmarksBridge::IsFolderAvailable( |
// configured via policy. |
if (folder == client_->managed_node() && folder->empty()) |
return false; |
+ // Similarly, the supervised bookmarks folder is not shown if there are no |
+ // bookmarks configured by the custodian. |
+ if (folder == client_->supervised_node() && folder->empty()) |
+ return false; |
SigninManager* signin = SigninManagerFactory::GetForProfile( |
profile_->GetOriginalProfile()); |