| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |