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..6bb1171dce02734e87c312a029ad13fe75ed43e8 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; |
@@ -327,6 +329,17 @@ public class NewTabPage |
@Override |
public void open(String url) { |
+ if (!OfflinePageUtils.isConnected(mNewTabPageView.getContext()) && !mIsDestroyed |
newt (away)
2016/01/12 20:58:55
This seems like the wrong layer (too high) to be a
Marc Treib
2016/01/13 09:38:19
I don't think we want to do the automatic indirect
newt (away)
2016/01/13 22:05:12
Ok, I'll buy that distinction between navigation f
Marc Treib
2016/01/14 10:09:17
Done.
|
+ && OfflinePageBridge.isEnabled()) { |
+ if (mOfflinePageBridge == null) { |
+ mOfflinePageBridge = new OfflinePageBridge(mProfile); |
+ } |
+ OfflinePageItem offlineItem = mOfflinePageBridge.getPageByOnlineURL(url); |
+ if (offlineItem != null) { |
+ mOfflinePageBridge.markPageAccessed(offlineItem.getBookmarkId()); |
+ url = offlineItem.getOfflineUrl(); |
+ } |
+ } |
mTab.loadUrl(new LoadUrlParams(url, PageTransition.AUTO_BOOKMARK)); |
} |
@@ -446,7 +459,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) != null; |
} |
@Override |