| 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 3bce7bd471d20e02513583692616aa8e7ff086e8..649366aac8040b4084c34d34056d3083990a0e0f 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
|
| @@ -92,6 +92,9 @@ public class ReaderModeManager extends TabModelSelectorTabObserver
|
| // InfoBar tracking.
|
| private boolean mIsInfoBarContainerShown;
|
|
|
| + // If Reader Mode is detecting all pages as distillable.
|
| + private boolean mIsReaderHeuristicAlwaysTrue;
|
| +
|
|
|
| public ReaderModeManager(TabModelSelector selector, ChromeActivity activity) {
|
| super(selector);
|
| @@ -99,6 +102,15 @@ public class ReaderModeManager extends TabModelSelectorTabObserver
|
| mTabModelSelector = selector;
|
| mChromeActivity = activity;
|
| mTabStatusMap = new HashMap<>();
|
| + mIsReaderHeuristicAlwaysTrue = isDistillerHeuristicAlwaysTrue();
|
| + }
|
| +
|
| + /**
|
| + * This function wraps a method that calls native code and is overridden by tests.
|
| + * @return True if the heuristic is ALWAYS_TRUE.
|
| + */
|
| + protected boolean isDistillerHeuristicAlwaysTrue() {
|
| + return DomDistillerTabUtils.isHeuristicAlwaysTrue();
|
| }
|
|
|
| /**
|
| @@ -508,7 +520,14 @@ public class ReaderModeManager extends TabModelSelectorTabObserver
|
| int currentTabId = mTabModelSelector.getCurrentTabId();
|
| if (currentTabId == Tab.INVALID_TAB_ID) return;
|
|
|
| + // Test if the user is requesting the desktop site. Ignore this if distiller is set to
|
| + // ALWAYS_TRUE.
|
| + boolean usingRequestDesktopSite = getBasePageWebContents() != null
|
| + && getBasePageWebContents().getNavigationController().getUseDesktopUserAgent()
|
| + && !mIsReaderHeuristicAlwaysTrue;
|
| +
|
| if (mReaderModePanel == null || !mTabStatusMap.containsKey(currentTabId)
|
| + || usingRequestDesktopSite
|
| || mTabStatusMap.get(currentTabId).getStatus() != POSSIBLE
|
| || mTabStatusMap.get(currentTabId).isDismissed()
|
| || mIsInfoBarContainerShown
|
|
|