Commit 3f6f0f0b authored by tedchoc's avatar tedchoc Committed by Commit bot

Hide top controls when in VR mode.

BUG=643449

Review-Url: https://codereview.chromium.org/2365973003
Cr-Commit-Position: refs/heads/master@{#422946}
parent 72b177c5
...@@ -81,6 +81,8 @@ import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoS ...@@ -81,6 +81,8 @@ import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoS
import org.chromium.chrome.browser.signin.SigninPromoUtil; import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.browser.snackbar.undo.UndoBarController; import org.chromium.chrome.browser.snackbar.undo.UndoBarController;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabDelegateFactory;
import org.chromium.chrome.browser.tab.TopControlsVisibilityDelegate;
import org.chromium.chrome.browser.tabmodel.ChromeTabCreator; import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver; import org.chromium.chrome.browser.tabmodel.EmptyTabModelObserver;
import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModel;
...@@ -103,6 +105,7 @@ import org.chromium.content.common.ContentSwitches; ...@@ -103,6 +105,7 @@ import org.chromium.content.common.ContentSwitches;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.widget.Toast; import org.chromium.ui.widget.Toast;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
...@@ -234,6 +237,43 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode ...@@ -234,6 +237,43 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
} }
} }
private class TabbedModeTopControlsVisibilityDelegate extends TopControlsVisibilityDelegate {
public TabbedModeTopControlsVisibilityDelegate(Tab tab) {
super(tab);
}
@Override
public boolean isShowingTopControlsEnabled() {
if (mVrShellDelegate.isInVR()) return false;
return super.isShowingTopControlsEnabled();
}
@Override
public boolean isHidingTopControlsEnabled() {
if (mVrShellDelegate.isInVR()) return true;
return super.isHidingTopControlsEnabled();
}
}
private class TabbedModeTabDelegateFactory extends TabDelegateFactory {
@Override
public TopControlsVisibilityDelegate createTopControlsVisibilityDelegate(Tab tab) {
return new TabbedModeTopControlsVisibilityDelegate(tab);
}
}
private class TabbedModeTabCreator extends ChromeTabCreator {
public TabbedModeTabCreator(ChromeActivity activity, WindowAndroid nativeWindow,
boolean incognito) {
super(activity, nativeWindow, incognito);
}
@Override
public TabDelegateFactory createDefaultTabDelegateFactory() {
return new TabbedModeTabDelegateFactory();
}
}
@Override @Override
public void initializeCompositor() { public void initializeCompositor() {
try { try {
...@@ -993,8 +1033,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode ...@@ -993,8 +1033,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
return; return;
} }
setTabCreators( setTabCreators(
new ChromeTabCreator(this, getWindowAndroid(), false), new TabbedModeTabCreator(this, getWindowAndroid(), false),
new ChromeTabCreator(this, getWindowAndroid(), true)); new TabbedModeTabCreator(this, getWindowAndroid(), true));
mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(mTabModelSelectorImpl) { mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(mTabModelSelectorImpl) {
private boolean mIsFirstPageLoadStart = true; private boolean mIsFirstPageLoadStart = true;
...@@ -1563,9 +1603,6 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode ...@@ -1563,9 +1603,6 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
mControlContainer.setVisibility(visibility); mControlContainer.setVisibility(visibility);
getCompositorViewHolder().getSurfaceView().setVisibility(visibility); getCompositorViewHolder().getSurfaceView().setVisibility(visibility);
getCompositorViewHolder().setVisibility(visibility); getCompositorViewHolder().setVisibility(visibility);
// Enter HTML5 fullscreen to ensure the texture fills the entire composited surface.
getFullscreenManager().setPersistentFullscreenMode(visibility == View.GONE);
} }
/** /**
......
...@@ -106,6 +106,7 @@ public class VrShellDelegate { ...@@ -106,6 +106,7 @@ public class VrShellDelegate {
if (inWebVR) mVrShell.setWebVrModeEnabled(true); if (inWebVR) mVrShell.setWebVrModeEnabled(true);
mVrShell.setVrModeEnabled(true); mVrShell.setVrModeEnabled(true);
mInVr = true; mInVr = true;
tab.updateFullscreenEnabledState();
return true; return true;
} }
...@@ -163,6 +164,8 @@ public class VrShellDelegate { ...@@ -163,6 +164,8 @@ public class VrShellDelegate {
clearVrModeWindowFlags(); clearVrModeWindowFlags();
destroyVrShell(); destroyVrShell();
mInVr = false; mInVr = false;
Tab tab = mActivity.getActivityTab();
if (tab != null) tab.updateFullscreenEnabledState();
} }
private boolean createVrShell() { private boolean createVrShell() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment