diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java index 5ec67615c9b2a..c0eea27e8c4fb 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java @@ -27,6 +27,7 @@ import java.util.Calendar; import java.util.Collections; import java.util.Comparator; +import java.util.HashSet; import java.util.List; import java.util.concurrent.TimeUnit; @@ -327,9 +328,17 @@ public List getBookmarkIDsByFilter(EnhancedBookmarkFilter filter) { List offlinePages = mOfflinePageBridge.getAllPages(); Collections.sort(offlinePages, sOfflinePageComparator); + + // We are going to filter out all of the offline pages without a matching bookmark. + // http://crbug.com/537806 + HashSet existingBookmarks = + new HashSet(getAllBookmarkIDsOrderedByCreationDate()); + List bookmarkIds = new ArrayList(); for (OfflinePageItem offlinePage : offlinePages) { - bookmarkIds.add(offlinePage.getBookmarkId()); + if (existingBookmarks.contains(offlinePage.getBookmarkId())) { + bookmarkIds.add(offlinePage.getBookmarkId()); + } } return bookmarkIds; }