Chromium Code Reviews| 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; |
| } |