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

Side by Side Diff: chrome/browser/android/bookmarks/bookmarks_bridge.cc

Issue 769153007: Managed bookmarks for supervised users (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Android fix; rebase Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/bookmarks/bookmarks_bridge.h" 5 #include "chrome/browser/android/bookmarks/bookmarks_bridge.h"
6 6
7 #include "base/android/jni_array.h" 7 #include "base/android/jni_array.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/containers/stack_container.h" 9 #include "base/containers/stack_container.h"
10 #include "base/i18n/string_compare.h" 10 #include "base/i18n/string_compare.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 jboolean get_normal, 224 jboolean get_normal,
225 jobject j_result_obj) { 225 jobject j_result_obj) {
226 DCHECK(IsLoaded()); 226 DCHECK(IsLoaded());
227 std::vector<const BookmarkNode*> top_level_folders; 227 std::vector<const BookmarkNode*> top_level_folders;
228 228
229 if (get_special) { 229 if (get_special) {
230 if (client_->managed_node() && 230 if (client_->managed_node() &&
231 client_->managed_node()->child_count() > 0) { 231 client_->managed_node()->child_count() > 0) {
232 top_level_folders.push_back(client_->managed_node()); 232 top_level_folders.push_back(client_->managed_node());
233 } 233 }
234 if (client_->supervised_node() &&
235 client_->supervised_node()->child_count() > 0) {
236 top_level_folders.push_back(client_->supervised_node());
237 }
234 if (partner_bookmarks_shim_->HasPartnerBookmarks()) { 238 if (partner_bookmarks_shim_->HasPartnerBookmarks()) {
235 top_level_folders.push_back( 239 top_level_folders.push_back(
236 partner_bookmarks_shim_->GetPartnerBookmarksRoot()); 240 partner_bookmarks_shim_->GetPartnerBookmarksRoot());
237 } 241 }
238 } 242 }
239 std::size_t special_count = top_level_folders.size(); 243 std::size_t special_count = top_level_folders.size();
240 244
241 if (get_normal) { 245 if (get_normal) {
242 DCHECK_EQ(bookmark_model_->root_node()->child_count(), 4); 246 DCHECK_EQ(bookmark_model_->root_node()->child_count(), 4);
243 247
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 for (std::list<const BookmarkNode*>::iterator folder_iter = folders.begin(); 466 for (std::list<const BookmarkNode*>::iterator folder_iter = folders.begin();
463 folder_iter != folders.end(); ++folder_iter) { 467 folder_iter != folders.end(); ++folder_iter) {
464 if (*folder_iter == NULL) 468 if (*folder_iter == NULL)
465 continue; 469 continue;
466 470
467 std::list<const BookmarkNode*>::iterator insert_iter = folder_iter; 471 std::list<const BookmarkNode*>::iterator insert_iter = folder_iter;
468 ++insert_iter; 472 ++insert_iter;
469 473
470 for (int i = 0; i < (*folder_iter)->child_count(); ++i) { 474 for (int i = 0; i < (*folder_iter)->child_count(); ++i) {
471 const BookmarkNode* child = (*folder_iter)->GetChild(i); 475 const BookmarkNode* child = (*folder_iter)->GetChild(i);
472 if (!IsReachable(child) || client_->IsDescendantOfManagedNode(child)) 476 if (!IsReachable(child) ||
477 client_->IsDescendantOfManagedOrSupervisedNode(child)) {
473 continue; 478 continue;
479 }
474 480
475 if (child->is_folder()) { 481 if (child->is_folder()) {
476 insert_iter = folders.insert(insert_iter, child); 482 insert_iter = folders.insert(insert_iter, child);
477 } else { 483 } else {
478 result.push_back(child); 484 result.push_back(child);
479 } 485 }
480 } 486 }
481 } 487 }
482 488
483 std::sort( 489 std::sort(
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 bool BookmarksBridge::IsLoaded() const { 870 bool BookmarksBridge::IsLoaded() const {
865 return (bookmark_model_->loaded() && partner_bookmarks_shim_->IsLoaded()); 871 return (bookmark_model_->loaded() && partner_bookmarks_shim_->IsLoaded());
866 } 872 }
867 873
868 bool BookmarksBridge::IsFolderAvailable( 874 bool BookmarksBridge::IsFolderAvailable(
869 const BookmarkNode* folder) const { 875 const BookmarkNode* folder) const {
870 // The managed bookmarks folder is not shown if there are no bookmarks 876 // The managed bookmarks folder is not shown if there are no bookmarks
871 // configured via policy. 877 // configured via policy.
872 if (folder == client_->managed_node() && folder->empty()) 878 if (folder == client_->managed_node() && folder->empty())
873 return false; 879 return false;
880 // Similarly, the supervised bookmarks folder is not shown if there are no
881 // bookmarks configured by the custodian.
882 if (folder == client_->supervised_node() && folder->empty())
883 return false;
874 884
875 SigninManager* signin = SigninManagerFactory::GetForProfile( 885 SigninManager* signin = SigninManagerFactory::GetForProfile(
876 profile_->GetOriginalProfile()); 886 profile_->GetOriginalProfile());
877 return (folder->type() != BookmarkNode::BOOKMARK_BAR && 887 return (folder->type() != BookmarkNode::BOOKMARK_BAR &&
878 folder->type() != BookmarkNode::OTHER_NODE) || 888 folder->type() != BookmarkNode::OTHER_NODE) ||
879 (signin && signin->IsAuthenticated()); 889 (signin && signin->IsAuthenticated());
880 } 890 }
881 891
882 void BookmarksBridge::NotifyIfDoneLoading() { 892 void BookmarksBridge::NotifyIfDoneLoading() {
883 if (!IsLoaded()) 893 if (!IsLoaded())
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1050 BookmarkModelChanged(); 1060 BookmarkModelChanged();
1051 } 1061 }
1052 1062
1053 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { 1063 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) {
1054 NotifyIfDoneLoading(); 1064 NotifyIfDoneLoading();
1055 } 1065 }
1056 1066
1057 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { 1067 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) {
1058 partner_bookmarks_shim_ = NULL; 1068 partner_bookmarks_shim_ = NULL;
1059 } 1069 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698