Commit 1d5cb12a authored by Lijin Shen's avatar Lijin Shen Committed by Commit Bot

Fix crash if bookmarks are added to their original parent folder

Chrome will crash if we select some bookmarks and then add them
to their parent folder. This CL is trying to fix that.

Bug: 1012651
Change-Id: I164de82a84bf922c5acdcea560a033291856708d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1850418Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Lijin Shen <lazzzis@google.com>
Cr-Commit-Position: refs/heads/master@{#705726}
parent cb9395ac
...@@ -124,6 +124,24 @@ public class BookmarkModelTest { ...@@ -124,6 +124,24 @@ public class BookmarkModelTest {
verifyBookmarkListNoOrder(mBookmarkModel.getChildIDs(folderAA, true, true), movedBookmarks); verifyBookmarkListNoOrder(mBookmarkModel.getChildIDs(folderAA, true, true), movedBookmarks);
} }
@Test
@SmallTest
@UiThreadTest
@Feature({"Bookmark"})
public void testMoveBookmarksToSameFolder() {
BookmarkId folder = mBookmarkModel.addFolder(mMobileNode, 0, "fc");
BookmarkId bookmarkA = addBookmark(folder, 0, "a", "http://a.com");
BookmarkId bookmarkB = addBookmark(folder, 1, "b", "http://b.com");
HashSet<BookmarkId> movedBookmarks = new HashSet<BookmarkId>(2);
movedBookmarks.add(bookmarkA);
movedBookmarks.add(bookmarkB);
mBookmarkModel.moveBookmarks(new ArrayList<BookmarkId>(movedBookmarks), folder);
// Order of the moved bookmarks is not tested.
verifyBookmarkListNoOrder(mBookmarkModel.getChildIDs(folder, true, true), movedBookmarks);
}
@Test @Test
@SmallTest @SmallTest
@UiThreadTest @UiThreadTest
......
...@@ -746,7 +746,10 @@ void BookmarkBridge::MoveBookmark( ...@@ -746,7 +746,10 @@ void BookmarkBridge::MoveBookmark(
bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
type = JavaBookmarkIdGetType(env, j_parent_id_obj); type = JavaBookmarkIdGetType(env, j_parent_id_obj);
const BookmarkNode* new_parent_node = GetNodeByID(bookmark_id, type); const BookmarkNode* new_parent_node = GetNodeByID(bookmark_id, type);
bookmark_model_->Move(node, new_parent_node, size_t{index}); // Bookmark should not be moved to its own parent folder
if (node->parent() != new_parent_node) {
bookmark_model_->Move(node, new_parent_node, size_t{index});
}
} }
ScopedJavaLocalRef<jobject> BookmarkBridge::AddBookmark( ScopedJavaLocalRef<jobject> BookmarkBridge::AddBookmark(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment