Index: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModel.java |
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 5ec67615c9b2ac7e8fb4b9819b0a1a5b9e58b82d..c0eea27e8c4fbc0bb0b974e6cb9e17d9d8caacc8 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.ArrayList; |
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 class EnhancedBookmarksModel extends BookmarksBridge { |
List<OfflinePageItem> 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<BookmarkId> existingBookmarks = |
+ new HashSet<BookmarkId>(getAllBookmarkIDsOrderedByCreationDate()); |
+ |
List<BookmarkId> bookmarkIds = new ArrayList<BookmarkId>(); |
for (OfflinePageItem offlinePage : offlinePages) { |
- bookmarkIds.add(offlinePage.getBookmarkId()); |
+ if (existingBookmarks.contains(offlinePage.getBookmarkId())) { |
+ bookmarkIds.add(offlinePage.getBookmarkId()); |
+ } |
} |
return bookmarkIds; |
} |