Index: chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
index dde1407799026c24823577eb68948f6a91dd86bd..5a74efd78d01703da9ab91244f731a758723d031 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java |
@@ -31,6 +31,7 @@ import org.chromium.chrome.browser.widget.findinpage.FindToolbarObserver; |
import org.chromium.components.dom_distiller.content.DistillablePageUtils; |
import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; |
import org.chromium.content_public.browser.LoadUrlParams; |
+import org.chromium.content_public.browser.NavigationHandle; |
import org.chromium.content_public.browser.WebContents; |
import org.chromium.content_public.browser.WebContentsObserver; |
import org.chromium.ui.UiUtils; |
@@ -440,9 +441,8 @@ public class ReaderModeManager extends TabModelSelectorTabObserver |
return new WebContentsObserver(webContents) { |
@Override |
- public void didStartProvisionalLoadForFrame(long frameId, long parentFrameId, |
- boolean isMainFrame, String validatedUrl, boolean isErrorPage) { |
- if (!isMainFrame) return; |
+ public void didStartNavigation(NavigationHandle navigation) { |
+ if (!navigation.isInMainFrame()) return; |
// If there is a navigation in the current tab, hide the bar. It will show again |
// once the distillability test is successful. |
if (readerTabId == mTabModelSelector.getCurrentTabId()) { |
@@ -453,6 +453,7 @@ public class ReaderModeManager extends TabModelSelectorTabObserver |
ReaderModeTabInfo tabInfo = mTabStatusMap.get(readerTabId); |
if (tabInfo == null) return; |
+ String validatedUrl = navigation.getValidatedURL(); |
tabInfo.setUrl(validatedUrl); |
if (DomDistillerUrlUtils.isDistilledPage(validatedUrl)) { |
tabInfo.setStatus(STARTED); |
@@ -461,22 +462,20 @@ public class ReaderModeManager extends TabModelSelectorTabObserver |
} |
@Override |
- public void didNavigateMainFrame(String url, String baseUrl, |
- boolean isNavigationToDifferentPage, boolean isNavigationInPage, |
- int statusCode) { |
+ public void didFinishNavigation(NavigationHandle navigation) { |
// TODO(cjhopman): This should possibly ignore navigations that replace the entry |
// (like those from history.replaceState()). |
Maria
2016/12/27 19:31:10
Add a check that inMainFrame()
|
- if (isNavigationInPage) return; |
- if (DomDistillerUrlUtils.isDistilledPage(url)) return; |
+ if (navigation.isSamePage()) return; |
+ if (DomDistillerUrlUtils.isDistilledPage(navigation.getValidatedURL())) return; |
// Make sure the tab was not destroyed. |
ReaderModeTabInfo tabInfo = mTabStatusMap.get(readerTabId); |
if (tabInfo == null) return; |
tabInfo.setStatus(POSSIBLE); |
- if (!TextUtils.equals(url, |
- DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl( |
- mReaderModePageUrl))) { |
+ if (!TextUtils.equals(navigation.getValidatedURL(), |
+ DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl( |
+ mReaderModePageUrl))) { |
tabInfo.setStatus(NOT_POSSIBLE); |
mIsUmaRecorded = false; |
} |