Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
index 857151e7928088458671d472985fb4cf00a8727d..fe392cd27ca7e9dd4f904fc5c97fcaf2f2a74027 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
@@ -46,6 +46,8 @@ import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; |
import org.chromium.chrome.browser.ntp.interests.InterestsPage; |
import org.chromium.chrome.browser.ntp.interests.InterestsPage.InterestsClickListener; |
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
+import org.chromium.chrome.browser.offlinepages.OfflinePageItem; |
+import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
import org.chromium.chrome.browser.preferences.DocumentModeManager; |
import org.chromium.chrome.browser.preferences.DocumentModePreference; |
import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
@@ -210,6 +212,20 @@ public class NewTabPage |
} |
private final NewTabPageManager mNewTabPageManager = new NewTabPageManager() { |
+ /** |
+ * Gets the URL for accessing the offline-available version of the given URL, and marks the |
+ * offline version as accessed. If no offline version is available, returns null. |
+ * @param pageUrl The URL of the site whose offline URL is requested. |
+ */ |
+ private String getOfflineUrl(String pageUrl) { |
fgorski
2016/01/08 17:37:51
remove and use mOfflinePageBridge.getOfflineUrlFor
Marc Treib
2016/01/11 10:32:23
I've removed the helper method, and moved the code
fgorski
2016/01/11 18:23:48
Acknowledged.
|
+ if (mIsDestroyed || !OfflinePageBridge.isEnabled()) return null; |
+ if (mOfflinePageBridge == null) mOfflinePageBridge = new OfflinePageBridge(mProfile); |
+ OfflinePageItem offlineItem = mOfflinePageBridge.getPageByOnlineURL(pageUrl); |
+ if (offlineItem == null) return null; |
+ mOfflinePageBridge.markPageAccessed(offlineItem.getBookmarkId()); |
+ return offlineItem.getOfflineUrl(); |
+ } |
+ |
@Override |
public boolean isLocationBarShownInNTP() { |
if (mIsDestroyed) return false; |
@@ -327,6 +343,12 @@ public class NewTabPage |
@Override |
public void open(String url) { |
+ if (!OfflinePageUtils.isConnected(mNewTabPageView.getContext())) { |
fgorski
2016/01/08 17:37:51
This is interesting. Until now we were opening the
Marc Treib
2016/01/11 10:32:23
Done.
|
+ String offlineUrl = getOfflineUrl(url); |
+ if (offlineUrl != null) { |
+ url = offlineUrl; |
+ } |
+ } |
mTab.loadUrl(new LoadUrlParams(url, PageTransition.AUTO_BOOKMARK)); |
} |
@@ -446,7 +468,7 @@ public class NewTabPage |
public boolean isOfflineAvailable(String pageUrl) { |
if (mIsDestroyed || !OfflinePageBridge.isEnabled()) return false; |
if (mOfflinePageBridge == null) mOfflinePageBridge = new OfflinePageBridge(mProfile); |
- return mOfflinePageBridge.getPageByOnlineURL(pageUrl) != null; |
+ return !mOfflinePageBridge.getOfflineUrlForOnlineUrl(pageUrl).isEmpty(); |
} |
@Override |