Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java |
| index 8824e21e99662bfb98d43c4f217c879dacb1eb55..2181b4a2607ffe8ddfa6b0643d13b44e6dcd507d 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java |
| @@ -97,6 +97,8 @@ public class VrShellImpl |
| private Tab mTab; |
| private ContentViewCore mContentViewCore; |
| private NativePage mNativePage; |
| + private Boolean mCanGoBack; |
| + private Boolean mCanGoForward; |
| private WindowAndroid mOriginalWindowAndroid; |
| private VrWindowAndroid mContentVrWindowAndroid; |
| @@ -215,6 +217,28 @@ public class VrShellImpl |
| if (mNativeVrShell == 0) return; |
| nativeOnLoadProgressChanged(mNativeVrShell, progress / 100.0); |
| } |
| + |
| + @Override |
| + public void onCrash(Tab tab, boolean sadTabShown) { |
| + updateHistoryButtonsVisibility(); |
| + } |
| + |
| + @Override |
| + public void onLoadStarted(Tab tab, boolean toDifferentDocument) { |
| + if (!toDifferentDocument) return; |
| + updateHistoryButtonsVisibility(); |
| + } |
| + |
| + @Override |
| + public void onLoadStopped(Tab tab, boolean toDifferentDocument) { |
| + if (!toDifferentDocument) return; |
| + updateHistoryButtonsVisibility(); |
|
bshe
2017/06/08 15:04:19
Is this needed? In ToolbarManager.java, it doesnt
mthiesse
2017/06/08 15:07:44
In ToolbarManager.java it calls updateTabLoadingSt
|
| + } |
| + |
| + @Override |
| + public void onUrlUpdated(Tab tab) { |
| + updateHistoryButtonsVisibility(); |
| + } |
| }; |
| mTabModelSelectorObserver = new EmptyTabModelSelectorObserver() { |
| @@ -297,6 +321,7 @@ public class VrShellImpl |
| createTabList(); |
| mActivity.getTabModelSelector().addObserver(mTabModelSelectorObserver); |
| createTabModelSelectorTabObserver(); |
| + updateHistoryButtonsVisibility(); |
| mPresentationView.setOnTouchListener(mTouchListener); |
| } |
| @@ -614,7 +639,14 @@ public class VrShellImpl |
| boolean shouldAlwaysGoBack = mActivity instanceof ChromeTabbedActivity |
| && (mNativePage == null || !(mNativePage instanceof NewTabPage)); |
| boolean canGoBack = mTab.canGoBack() || shouldAlwaysGoBack; |
| - nativeSetHistoryButtonsEnabled(mNativeVrShell, canGoBack, mTab.canGoForward()); |
| + boolean canGoForward = mTab.canGoForward(); |
| + if ((mCanGoBack != null && canGoBack == mCanGoBack) |
| + && (mCanGoForward != null && canGoForward == mCanGoForward)) { |
| + return; |
| + } |
| + mCanGoBack = canGoBack; |
| + mCanGoForward = canGoForward; |
| + nativeSetHistoryButtonsEnabled(mNativeVrShell, mCanGoBack, mCanGoForward); |
| } |
| @CalledByNative |