Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4542)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java

Issue 1514833002: [Offline Pages on the NTP] Bypass the network interstitial (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@offline_badge
Patch Set: getOfflineUrlForOnlineUrl returns emtpy string, not null Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698