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_string.h" | 7 #include "base/android/jni_string.h" |
8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
9 #include "chrome/browser/bookmarks/bookmark_model.h" | 9 #include "chrome/browser/bookmarks/bookmark_model.h" |
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 jobject j_callback_obj, | 95 jobject j_callback_obj, |
96 jobject j_result_obj) { | 96 jobject j_result_obj) { |
97 DCHECK(IsLoaded()); | 97 DCHECK(IsLoaded()); |
98 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); | 98 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); |
99 int type = Java_BookmarkId_getType(env, j_folder_id_obj); | 99 int type = Java_BookmarkId_getType(env, j_folder_id_obj); |
100 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); | 100 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); |
101 | 101 |
102 if (!folder->is_folder() || !IsReachable(folder)) | 102 if (!folder->is_folder() || !IsReachable(folder)) |
103 return; | 103 return; |
104 | 104 |
| 105 // Recreate the java bookmarkId object due to fallback. |
| 106 ScopedJavaLocalRef<jobject> folder_id_obj = |
| 107 Java_BookmarksBridge_createBookmarkId( |
| 108 env, folder->id(), GetBookmarkType(folder)); |
| 109 j_folder_id_obj = folder_id_obj.obj(); |
| 110 |
105 // If this is the Mobile bookmarks folder then add the "Managed bookmarks" | 111 // If this is the Mobile bookmarks folder then add the "Managed bookmarks" |
106 // folder first, so that it's the first entry. | 112 // folder first, so that it's the first entry. |
107 if (folder == bookmark_model_->mobile_node() && | 113 if (folder == bookmark_model_->mobile_node() && |
108 managed_bookmarks_shim_->HasManagedBookmarks()) { | 114 managed_bookmarks_shim_->HasManagedBookmarks()) { |
109 ExtractBookmarkNodeInformation( | 115 ExtractBookmarkNodeInformation( |
110 managed_bookmarks_shim_->GetManagedBookmarksRoot(), | 116 managed_bookmarks_shim_->GetManagedBookmarksRoot(), |
111 j_result_obj); | 117 j_result_obj); |
112 } | 118 } |
113 // Get the folder contents | 119 // Get the folder contents |
114 for (int i = 0; i < folder->child_count(); ++i) { | 120 for (int i = 0; i < folder->child_count(); ++i) { |
(...skipping 18 matching lines...) Expand all Loading... |
133 jobject j_callback_obj, | 139 jobject j_callback_obj, |
134 jobject j_result_obj) { | 140 jobject j_result_obj) { |
135 DCHECK(IsLoaded()); | 141 DCHECK(IsLoaded()); |
136 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); | 142 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); |
137 int type = Java_BookmarkId_getType(env, j_folder_id_obj); | 143 int type = Java_BookmarkId_getType(env, j_folder_id_obj); |
138 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); | 144 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); |
139 | 145 |
140 if (!folder->is_folder() || !IsReachable(folder)) | 146 if (!folder->is_folder() || !IsReachable(folder)) |
141 return; | 147 return; |
142 | 148 |
| 149 // Recreate the java bookmarkId object due to fallback. |
| 150 ScopedJavaLocalRef<jobject> folder_id_obj = |
| 151 Java_BookmarksBridge_createBookmarkId( |
| 152 env, folder->id(), GetBookmarkType(folder)); |
| 153 j_folder_id_obj = folder_id_obj.obj(); |
| 154 |
143 // Get the folder heirarchy | 155 // Get the folder heirarchy |
144 const BookmarkNode* node = folder; | 156 const BookmarkNode* node = folder; |
145 while (node) { | 157 while (node) { |
146 ExtractBookmarkNodeInformation(node, j_result_obj); | 158 ExtractBookmarkNodeInformation(node, j_result_obj); |
147 node = GetParentNode(node); | 159 node = GetParentNode(node); |
148 } | 160 } |
149 | 161 |
150 Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable( | 162 Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable( |
151 env, j_callback_obj, j_folder_id_obj, j_result_obj); | 163 env, j_callback_obj, j_folder_id_obj, j_result_obj); |
152 } | 164 } |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 BookmarkModelChanged(); | 420 BookmarkModelChanged(); |
409 } | 421 } |
410 | 422 |
411 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { | 423 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { |
412 NotifyIfDoneLoading(); | 424 NotifyIfDoneLoading(); |
413 } | 425 } |
414 | 426 |
415 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { | 427 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { |
416 partner_bookmarks_shim_ = NULL; | 428 partner_bookmarks_shim_ = NULL; |
417 } | 429 } |
OLD | NEW |