| Index: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java
|
| index 43e777683d46147c003f8ee1b3211dfbb9fc8e29..f231e7500a5f4e2bfd836beccd96e220e5e57c33 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java
|
| @@ -7,6 +7,7 @@ package org.chromium.chrome.browser.bookmarks;
|
| import org.chromium.base.ObserverList;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.base.metrics.RecordHistogram;
|
| +import org.chromium.chrome.browser.offlinepages.ClientId;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageModelObserver;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SavePageCallback;
|
| @@ -233,7 +234,8 @@ public class BookmarkModel extends BookmarkBridge {
|
| if (mOfflinePageBridge != null) {
|
| RecordHistogram.recordBooleanHistogram("OfflinePages.IncognitoSave",
|
| webContents.isIncognito());
|
| - mOfflinePageBridge.savePage(webContents, bookmarkId, new SavePageCallback() {
|
| + ClientId clientId = ClientId.createClientIdForBookmarkId(bookmarkId);
|
| + mOfflinePageBridge.savePage(webContents, clientId, new SavePageCallback() {
|
| @Override
|
| public void onSavePageDone(int savePageResult, String url, long offlineId) {
|
| int saveResult;
|
| @@ -268,8 +270,9 @@ public class BookmarkModel extends BookmarkBridge {
|
| String url = getBookmarkById(bookmarkId).getUrl();
|
| if (mOfflinePageBridge == null) return url;
|
|
|
| + ClientId clientId = ClientId.createClientIdForBookmarkId(bookmarkId);
|
| return mOfflinePageBridge.getLaunchUrlAndMarkAccessed(
|
| - mOfflinePageBridge.getPageByBookmarkId(bookmarkId), url);
|
| + mOfflinePageBridge.getPageByClientId(clientId), url);
|
| }
|
|
|
| /**
|
| @@ -299,8 +302,9 @@ public class BookmarkModel extends BookmarkBridge {
|
|
|
| List<BookmarkId> bookmarkIds = new ArrayList<BookmarkId>();
|
| for (OfflinePageItem offlinePage : offlinePages) {
|
| - if (existingBookmarks.contains(offlinePage.getBookmarkId())) {
|
| - bookmarkIds.add(offlinePage.getBookmarkId());
|
| + BookmarkId bookmarkId = getBookmarkIdForOfflineClientId(offlinePage.getClientId());
|
| + if (existingBookmarks.contains(bookmarkId)) {
|
| + bookmarkIds.add(bookmarkId);
|
| }
|
| }
|
| return bookmarkIds;
|
| @@ -312,4 +316,15 @@ public class BookmarkModel extends BookmarkBridge {
|
| public OfflinePageBridge getOfflinePageBridge() {
|
| return mOfflinePageBridge;
|
| }
|
| +
|
| + /**
|
| + * @param id The client id to convert.
|
| + * @return The bookmark id contained in the specified client id.
|
| + */
|
| + public static BookmarkId getBookmarkIdForOfflineClientId(ClientId id) {
|
| + if (id.getNamespace() != OfflinePageBridge.BOOKMARK_NAMESPACE) {
|
| + return new BookmarkId(BookmarkType.NORMAL, -1);
|
| + }
|
| + return BookmarkId.getBookmarkIdFromString(id.getId());
|
| + }
|
| }
|
|
|