| Index: chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| index d3b6c572346c76e884cf552dc63072df23475f7c..ab6fe1d4ba35796e35ec41332909d9319cb06fa6 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| @@ -22,6 +22,7 @@ import org.chromium.chrome.browser.ChromeActivity;
|
| import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.IntentHandler;
|
| import org.chromium.chrome.browser.UrlConstants;
|
| +import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| import org.chromium.chrome.browser.util.IntentUtils;
|
| import org.chromium.chrome.browser.util.UrlUtilities;
|
| import org.chromium.ui.base.PageTransition;
|
| @@ -169,6 +170,17 @@ public class ExternalNavigationHandler {
|
| return OverrideUrlLoadingResult.NO_OVERRIDE;
|
| }
|
|
|
| + // If accessing a file URL, which points to an offline copy of an offline page, there
|
| + // is no need to override the navigation.
|
| + if (OfflinePageBridge.isEnabled()) {
|
| + OfflinePageBridge offlinePageBridge =
|
| + new OfflinePageBridge(params.getTab().getProfile());
|
| + if (offlinePageBridge.isOfflinePageUrl(params.getUrl())) {
|
| + return OverrideUrlLoadingResult.NO_OVERRIDE;
|
| + }
|
| + offlinePageBridge.destroy();
|
| + }
|
| +
|
| // If accessing a file URL, ensure that the user has granted the necessary file access
|
| // to Chrome. This check should happen for reloads, navigations, etc..., which is why
|
| // it occurs before the subsequent blocks.
|
|
|