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" |
11 #include "base/prefs/pref_service.h" | 11 #include "base/prefs/pref_service.h" |
12 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 12 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
13 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h" | 13 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h" |
14 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h" | 14 #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h" |
15 #include "chrome/browser/profiles/incognito_helpers.h" | 15 #include "chrome/browser/profiles/incognito_helpers.h" |
16 #include "chrome/browser/profiles/profile.h" | 16 #include "chrome/browser/profiles/profile.h" |
17 #include "chrome/browser/profiles/profile_android.h" | 17 #include "chrome/browser/profiles/profile_android.h" |
18 #include "chrome/browser/profiles/profile_manager.h" | |
19 #include "chrome/browser/signin/signin_manager_factory.h" | 18 #include "chrome/browser/signin/signin_manager_factory.h" |
20 #include "chrome/browser/undo/bookmark_undo_service.h" | 19 #include "chrome/browser/undo/bookmark_undo_service.h" |
21 #include "chrome/browser/undo/bookmark_undo_service_factory.h" | 20 #include "chrome/browser/undo/bookmark_undo_service_factory.h" |
22 #include "chrome/browser/undo/undo_manager.h" | 21 #include "chrome/browser/undo/undo_manager.h" |
23 #include "chrome/common/pref_names.h" | 22 #include "chrome/common/pref_names.h" |
24 #include "components/bookmarks/browser/bookmark_match.h" | 23 #include "components/bookmarks/browser/bookmark_match.h" |
25 #include "components/bookmarks/browser/bookmark_model.h" | 24 #include "components/bookmarks/browser/bookmark_model.h" |
26 #include "components/bookmarks/browser/bookmark_utils.h" | 25 #include "components/bookmarks/browser/bookmark_utils.h" |
27 #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" | 26 #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" |
28 #include "components/bookmarks/common/android/bookmark_type.h" | 27 #include "components/bookmarks/common/android/bookmark_type.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 return reinterpret_cast<intptr_t>(delegate); | 139 return reinterpret_cast<intptr_t>(delegate); |
141 } | 140 } |
142 | 141 |
143 static jboolean IsEnhancedBookmarksFeatureEnabled(JNIEnv* env, | 142 static jboolean IsEnhancedBookmarksFeatureEnabled(JNIEnv* env, |
144 jclass clazz, | 143 jclass clazz, |
145 jobject j_profile) { | 144 jobject j_profile) { |
146 Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile); | 145 Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile); |
147 return IsEnhancedBookmarksEnabled(profile->GetPrefs()); | 146 return IsEnhancedBookmarksEnabled(profile->GetPrefs()); |
148 } | 147 } |
149 | 148 |
150 static bool IsEditBookmarksEnabled() { | 149 static bool IsEditBookmarksEnabled(Profile* profile) { |
151 return ProfileManager::GetLastUsedProfile()->GetPrefs()->GetBoolean( | 150 return profile->GetPrefs()->GetBoolean( |
152 bookmarks::prefs::kEditBookmarksEnabled); | 151 bookmarks::prefs::kEditBookmarksEnabled); |
153 } | 152 } |
154 | 153 |
155 static jboolean IsEditBookmarksEnabled(JNIEnv* env, jclass clazz) { | 154 static jboolean IsEditBookmarksEnabled(JNIEnv* env, |
156 return IsEditBookmarksEnabled(); | 155 jclass clazz, |
| 156 jobject j_profile) { |
| 157 return IsEditBookmarksEnabled(ProfileAndroid::FromProfileAndroid(j_profile)); |
157 } | 158 } |
158 | 159 |
159 void BookmarksBridge::LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env, | 160 void BookmarksBridge::LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env, |
160 jobject obj) { | 161 jobject obj) { |
161 if (partner_bookmarks_shim_->IsLoaded()) | 162 if (partner_bookmarks_shim_->IsLoaded()) |
162 return; | 163 return; |
163 partner_bookmarks_shim_->SetPartnerBookmarksRoot( | 164 partner_bookmarks_shim_->SetPartnerBookmarksRoot( |
164 new BookmarkPermanentNode(0)); | 165 new BookmarkPermanentNode(0)); |
165 DCHECK(partner_bookmarks_shim_->IsLoaded()); | 166 DCHECK(partner_bookmarks_shim_->IsLoaded()); |
166 } | 167 } |
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
801 folder = bookmark_model_->mobile_node(); | 802 folder = bookmark_model_->mobile_node(); |
802 } | 803 } |
803 return folder; | 804 return folder; |
804 } | 805 } |
805 | 806 |
806 bool BookmarksBridge::IsEditable(const BookmarkNode* node) const { | 807 bool BookmarksBridge::IsEditable(const BookmarkNode* node) const { |
807 if (!node || (node->type() != BookmarkNode::FOLDER && | 808 if (!node || (node->type() != BookmarkNode::FOLDER && |
808 node->type() != BookmarkNode::URL)) { | 809 node->type() != BookmarkNode::URL)) { |
809 return false; | 810 return false; |
810 } | 811 } |
811 if (!IsEditBookmarksEnabled()) | 812 if (!IsEditBookmarksEnabled(profile_)) |
812 return false; | 813 return false; |
813 if (partner_bookmarks_shim_->IsPartnerBookmark(node)) | 814 if (partner_bookmarks_shim_->IsPartnerBookmark(node)) |
814 return partner_bookmarks_shim_->IsEditable(node); | 815 return partner_bookmarks_shim_->IsEditable(node); |
815 return client_->CanBeEditedByUser(node); | 816 return client_->CanBeEditedByUser(node); |
816 } | 817 } |
817 | 818 |
818 bool BookmarksBridge::IsManaged(const BookmarkNode* node) const { | 819 bool BookmarksBridge::IsManaged(const BookmarkNode* node) const { |
819 return bookmarks::IsDescendantOf(node, client_->managed_node()); | 820 return bookmarks::IsDescendantOf(node, client_->managed_node()); |
820 } | 821 } |
821 | 822 |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1034 BookmarkModelChanged(); | 1035 BookmarkModelChanged(); |
1035 } | 1036 } |
1036 | 1037 |
1037 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { | 1038 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { |
1038 NotifyIfDoneLoading(); | 1039 NotifyIfDoneLoading(); |
1039 } | 1040 } |
1040 | 1041 |
1041 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { | 1042 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { |
1042 partner_bookmarks_shim_ = NULL; | 1043 partner_bookmarks_shim_ = NULL; |
1043 } | 1044 } |
OLD | NEW |