| 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 55fa1ac0bbc97fa6f560bd4a4b005a59be4c554d..aaa814e468a68cbf0e024432f6f3d91e38aa6651 100644
|
| --- a/chrome/browser/android/bookmarks/bookmarks_bridge.cc
|
| +++ b/chrome/browser/android/bookmarks/bookmarks_bridge.cc
|
| @@ -146,6 +146,14 @@ static jboolean IsEditBookmarksEnabled(JNIEnv* env, jclass clazz) {
|
| return IsEditBookmarksEnabled();
|
| }
|
|
|
| +void BookmarksBridge::LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env,
|
| + jobject obj) {
|
| + if (partner_bookmarks_shim_->IsLoaded()) return;
|
| + partner_bookmarks_shim_->SetPartnerBookmarksRoot(
|
| + new BookmarkPermanentNode(0));
|
| + DCHECK(partner_bookmarks_shim_->IsLoaded());
|
| +}
|
| +
|
| ScopedJavaLocalRef<jobject> BookmarksBridge::GetBookmarkByID(JNIEnv* env,
|
| jobject obj,
|
| jlong id,
|
| @@ -363,6 +371,24 @@ ScopedJavaLocalRef<jobject> BookmarksBridge::GetMobileFolderId(JNIEnv* env,
|
| return folder_id_obj;
|
| }
|
|
|
| +ScopedJavaLocalRef<jobject> BookmarksBridge::GetOtherFolderId(JNIEnv* env,
|
| + jobject obj) {
|
| + const BookmarkNode* otherNode = bookmark_model_->other_node();
|
| + ScopedJavaLocalRef<jobject> folder_id_obj =
|
| + Java_BookmarksBridge_createBookmarkId(
|
| + env, otherNode->id(), GetBookmarkType(otherNode));
|
| + return folder_id_obj;
|
| +}
|
| +
|
| +ScopedJavaLocalRef<jobject> BookmarksBridge::GetDesktopFolderId(JNIEnv* env,
|
| + jobject obj) {
|
| + const BookmarkNode* desktopNode = bookmark_model_->bookmark_bar_node();
|
| + ScopedJavaLocalRef<jobject> folder_id_obj =
|
| + Java_BookmarksBridge_createBookmarkId(
|
| + env, desktopNode->id(), GetBookmarkType(desktopNode));
|
| + return folder_id_obj;
|
| +}
|
| +
|
| void BookmarksBridge::GetChildIDs(JNIEnv* env,
|
| jobject obj,
|
| jlong id,
|
| @@ -550,6 +576,27 @@ void BookmarksBridge::GetCurrentFolderHierarchy(JNIEnv* env,
|
| env, j_callback_obj, j_folder_id_obj, j_result_obj);
|
| }
|
|
|
| +ScopedJavaLocalRef<jobject> BookmarksBridge::AddFolder(JNIEnv* env,
|
| + jobject obj,
|
| + jobject j_parent_id_obj,
|
| + jint index,
|
| + jstring j_title) {
|
| + DCHECK(IsLoaded());
|
| + long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
|
| + int type = JavaBookmarkIdGetType(env, j_parent_id_obj);
|
| + const BookmarkNode* parent = GetNodeByID(bookmark_id, type);
|
| + if (type != BookmarkType::NORMAL) {
|
| + NOTREACHED();
|
| + return ScopedJavaLocalRef<jobject>();
|
| + }
|
| + const BookmarkNode* newNode = bookmark_model_->AddFolder(
|
| + parent, index, base::android::ConvertJavaStringToUTF16(env, j_title));
|
| + ScopedJavaLocalRef<jobject> new_java_obj =
|
| + Java_BookmarksBridge_createBookmarkId(
|
| + env, newNode->id(), GetBookmarkType(newNode));
|
| + return new_java_obj;
|
| +}
|
| +
|
| void BookmarksBridge::DeleteBookmark(JNIEnv* env,
|
| jobject obj,
|
| jobject j_bookmark_id_obj) {
|
| @@ -593,6 +640,32 @@ void BookmarksBridge::MoveBookmark(JNIEnv* env,
|
| bookmark_model_->Move(node, new_parent_node, index);
|
| }
|
|
|
| +ScopedJavaLocalRef<jobject> BookmarksBridge::AddBookmark(
|
| + JNIEnv* env,
|
| + jobject obj,
|
| + jobject j_parent_id_obj,
|
| + jint index,
|
| + jstring j_title,
|
| + jstring j_url) {
|
| + DCHECK(IsLoaded());
|
| + long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
|
| + int type = JavaBookmarkIdGetType(env, j_parent_id_obj);
|
| + const BookmarkNode* parent = GetNodeByID(bookmark_id, type);
|
| + if (type != BookmarkType::NORMAL) {
|
| + NOTREACHED();
|
| + return ScopedJavaLocalRef<jobject>();
|
| + }
|
| + const BookmarkNode* newNode = bookmark_model_->AddURL(
|
| + parent,
|
| + index,
|
| + base::android::ConvertJavaStringToUTF16(env, j_title),
|
| + GURL(base::android::ConvertJavaStringToUTF16(env, j_url)));
|
| + ScopedJavaLocalRef<jobject> new_java_obj =
|
| + Java_BookmarksBridge_createBookmarkId(
|
| + env, newNode->id(), GetBookmarkType(newNode));
|
| + return new_java_obj;
|
| +}
|
| +
|
| ScopedJavaLocalRef<jobject> BookmarksBridge::CreateJavaBookmark(
|
| const BookmarkNode* node) {
|
| JNIEnv* env = AttachCurrentThread();
|
|
|