Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
index fea48405089447b4fceb2c5400b5c9e36bf8190d..22d835049a8198c7a98fd75466329c214db0c24d 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
@@ -175,6 +175,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
private static final String TAG = "ChromeActivity"; |
private static final Rect EMPTY_RECT = new Rect(); |
+ protected boolean mVrMode = true; |
private TabModelSelector mTabModelSelector; |
private TabModelSelectorTabObserver mTabModelSelectorTabObserver; |
private TabCreatorManager.TabCreator mRegularTabCreator; |
@@ -307,11 +308,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
// Set up the animation placeholder to be the SurfaceView. This disables the |
// SurfaceView's 'hole' clipping during animations that are notified to the window. |
- mWindowAndroid.setAnimationPlaceholderView(mCompositorViewHolder.getSurfaceView()); |
+ if (!mVrMode) { |
+ mWindowAndroid.setAnimationPlaceholderView(mCompositorViewHolder.getSurfaceView()); |
- // Inform the WindowAndroid of the keyboard accessory view. |
- mWindowAndroid.setKeyboardAccessoryView((ViewGroup) findViewById(R.id.keyboard_accessory)); |
- initializeToolbar(); |
+ // Inform the WindowAndroid of the keyboard accessory view. |
+ mWindowAndroid.setKeyboardAccessoryView( |
+ (ViewGroup) findViewById(R.id.keyboard_accessory)); |
+ initializeToolbar(); |
+ } |
} |
@Override |
@@ -342,20 +346,22 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
WarmupManager.getInstance().transferViewHierarchyTo(contentParent); |
contentParent.removeView(placeHolderView); |
} else { |
- // Allow disk access for the content view and toolbar container setup. |
- // On certain android devices this setup sequence results in disk writes outside |
- // of our control, so we have to disable StrictMode to work. See crbug.com/639352. |
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites(); |
- try { |
- setContentView(R.layout.main); |
- if (controlContainerLayoutId != NO_CONTROL_CONTAINER) { |
- ViewStub toolbarContainerStub = |
- ((ViewStub) findViewById(R.id.control_container_stub)); |
- toolbarContainerStub.setLayoutResource(controlContainerLayoutId); |
- toolbarContainerStub.inflate(); |
+ if (!mVrMode) { |
+ // Allow disk access for the content view and toolbar container setup. |
+ // On certain android devices this setup sequence results in disk writes outside |
+ // of our control, so we have to disable StrictMode to work. See crbug.com/639352. |
+ StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites(); |
+ try { |
+ setContentView(R.layout.main); |
+ if (controlContainerLayoutId != NO_CONTROL_CONTAINER) { |
+ ViewStub toolbarContainerStub = |
+ ((ViewStub) findViewById(R.id.control_container_stub)); |
+ toolbarContainerStub.setLayoutResource(controlContainerLayoutId); |
+ toolbarContainerStub.inflate(); |
+ } |
+ } finally { |
+ StrictMode.setThreadPolicy(oldPolicy); |
} |
- } finally { |
- StrictMode.setThreadPolicy(oldPolicy); |
} |
} |
TraceEvent.end("onCreate->setContentView()"); |
@@ -367,8 +373,12 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
ApiCompatibilityUtils.setStatusBarColor(getWindow(), Color.BLACK); |
ViewGroup rootView = (ViewGroup) getWindow().getDecorView().getRootView(); |
- mCompositorViewHolder = (CompositorViewHolder) findViewById(R.id.compositor_view_holder); |
- mCompositorViewHolder.setRootView(rootView); |
+ |
+ if (!mVrMode) { |
+ mCompositorViewHolder = |
+ (CompositorViewHolder) findViewById(R.id.compositor_view_holder); |
+ mCompositorViewHolder.setRootView(rootView); |
+ } |
// Setting fitsSystemWindows to false ensures that the root view doesn't consume the insets. |
rootView.setFitsSystemWindows(false); |
@@ -385,34 +395,37 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
* {@link Toolbar}. Extending classes can override this call to avoid creating the toolbar. |
*/ |
protected void initializeToolbar() { |
- final View controlContainer = findViewById(R.id.control_container); |
- assert controlContainer != null; |
- ToolbarControlContainer toolbarContainer = (ToolbarControlContainer) controlContainer; |
- mAppMenuPropertiesDelegate = createAppMenuPropertiesDelegate(); |
- mAppMenuHandler = sAppMenuHandlerFactory.get(this, mAppMenuPropertiesDelegate, |
- getAppMenuLayoutId()); |
- mToolbarManager = new ToolbarManager(this, toolbarContainer, mAppMenuHandler, |
- mAppMenuPropertiesDelegate, getCompositorViewHolder().getInvalidator()); |
- mAppMenuHandler.addObserver(new AppMenuObserver() { |
- @Override |
- public void onMenuVisibilityChanged(boolean isVisible) { |
- if (isVisible && !isInOverviewMode()) { |
- // The app menu badge should be removed the first time the menu is opened. |
- if (mToolbarManager.getToolbar().isShowingAppMenuUpdateBadge()) { |
- mToolbarManager.getToolbar().removeAppMenuUpdateBadge(true); |
- mCompositorViewHolder.requestRender(); |
+ if (!mVrMode) { |
+ final View controlContainer = findViewById(R.id.control_container); |
+ assert controlContainer != null; |
+ ToolbarControlContainer toolbarContainer = (ToolbarControlContainer) controlContainer; |
+ mAppMenuPropertiesDelegate = createAppMenuPropertiesDelegate(); |
+ mAppMenuHandler = sAppMenuHandlerFactory.get( |
+ this, mAppMenuPropertiesDelegate, getAppMenuLayoutId()); |
+ mToolbarManager = new ToolbarManager(this, toolbarContainer, mAppMenuHandler, |
+ mAppMenuPropertiesDelegate, getCompositorViewHolder().getInvalidator()); |
+ mAppMenuHandler.addObserver(new AppMenuObserver() { |
+ @Override |
+ public void onMenuVisibilityChanged(boolean isVisible) { |
+ if (isVisible && !isInOverviewMode()) { |
+ // The app menu badge should be removed the first time the menu is opened. |
+ if (mToolbarManager.getToolbar().isShowingAppMenuUpdateBadge()) { |
+ mToolbarManager.getToolbar().removeAppMenuUpdateBadge(true); |
+ |
+ if (!mVrMode) mCompositorViewHolder.requestRender(); |
+ } |
} |
- } |
- if (!isVisible) { |
- mAppMenuPropertiesDelegate.onMenuDismissed(); |
- MenuItem updateMenuItem = mAppMenuHandler.getAppMenu().getMenu().findItem( |
- R.id.update_menu_id); |
- if (updateMenuItem != null && updateMenuItem.isVisible()) { |
- UpdateMenuItemHelper.getInstance().onMenuDismissed(); |
+ if (!isVisible) { |
+ mAppMenuPropertiesDelegate.onMenuDismissed(); |
+ MenuItem updateMenuItem = mAppMenuHandler.getAppMenu().getMenu().findItem( |
+ R.id.update_menu_id); |
+ if (updateMenuItem != null && updateMenuItem.isVisible()) { |
+ UpdateMenuItemHelper.getInstance().onMenuDismissed(); |
+ } |
} |
} |
- } |
- }); |
+ }); |
+ } |
} |
/** |
@@ -484,7 +497,12 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
setTabContentManager(new TabContentManager(this, getContentOffsetProvider(), |
DeviceClassManager.enableSnapshots())); |
- mCompositorViewHolder.onNativeLibraryReady(mWindowAndroid, getTabContentManager()); |
+ |
+ if (!mVrMode) { |
+ // mCompositorViewHolder.onNativeLibraryReady(new ActivityWindowAndroid(this), |
+ // getTabContentManager()); |
+ mCompositorViewHolder.onNativeLibraryReady(mWindowAndroid, getTabContentManager()); |
+ } |
if (isContextualSearchAllowed() && ContextualSearchFieldTrial.isEnabled()) { |
mContextualSearchManager = new ContextualSearchManager(this, mWindowAndroid, this); |
@@ -562,9 +580,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
if (getToolbarManager() == null) return; |
getToolbarManager().updatePrimaryColor(color, true); |
- ControlContainer controlContainer = |
- (ControlContainer) findViewById(R.id.control_container); |
- controlContainer.getToolbarResourceAdapter().invalidate(null); |
+ if (!mVrMode) { |
+ ControlContainer controlContainer = |
+ (ControlContainer) findViewById(R.id.control_container); |
+ controlContainer.getToolbarResourceAdapter().invalidate(null); |
+ } |
} |
}; |
@@ -587,7 +607,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
} else { |
ContextReporter.reportStatus(ContextReporter.STATUS_GSA_NOT_AVAILABLE); |
} |
- mCompositorViewHolder.resetFlags(); |
+ if (!mVrMode) mCompositorViewHolder.resetFlags(); |
// postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(), |
// #onPageLoadFinished() and #onCrash(). If we are not actively loading a tab (e.g. |
@@ -780,7 +800,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
@Override |
public void onStart() { |
if (AsyncTabParamsManager.hasParamsWithTabToReparent()) { |
- mCompositorViewHolder.prepareForTabReparenting(); |
+ if (!mVrMode) mCompositorViewHolder.prepareForTabReparenting(); |
} |
super.onStart(); |
if (mContextReporter != null) mContextReporter.enable(); |
@@ -1297,7 +1317,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
* @return The content offset provider, may be null. |
*/ |
public ContentOffsetProvider getContentOffsetProvider() { |
- return mCompositorViewHolder.getContentOffsetProvider(); |
+ if (!mVrMode) |
+ return mCompositorViewHolder.getContentOffsetProvider(); |
+ else |
+ return null; |
} |
/** |
@@ -1369,14 +1392,17 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
} |
layoutManager.addSceneChangeObserver(this); |
- mCompositorViewHolder.setLayoutManager(layoutManager); |
- mCompositorViewHolder.setFocusable(false); |
- mCompositorViewHolder.setControlContainer(controlContainer); |
- mCompositorViewHolder.setFullscreenHandler(mFullscreenManager); |
- mCompositorViewHolder.setUrlBar(urlBar); |
- mCompositorViewHolder.onFinishNativeInitialization(getTabModelSelector(), this, |
- getTabContentManager(), contentContainer, mContextualSearchManager, |
- mReaderModeManager); |
+ |
+ if (!mVrMode) { |
+ mCompositorViewHolder.setLayoutManager(layoutManager); |
+ mCompositorViewHolder.setFocusable(false); |
+ mCompositorViewHolder.setControlContainer(controlContainer); |
+ mCompositorViewHolder.setFullscreenHandler(mFullscreenManager); |
+ mCompositorViewHolder.setUrlBar(urlBar); |
+ mCompositorViewHolder.onFinishNativeInitialization(getTabModelSelector(), this, |
+ getTabContentManager(), contentContainer, mContextualSearchManager, |
+ mReaderModeManager); |
+ } |
if (controlContainer != null |
&& DeviceClassManager.enableToolbarSwipe()) { |
@@ -1524,9 +1550,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
* @param updateAvailable Whether an update is available. |
*/ |
public void onCheckForUpdate(boolean updateAvailable) { |
+ if (mVrMode) return; |
if (UpdateMenuItemHelper.getInstance().shouldShowToolbarBadge(this)) { |
mToolbarManager.getToolbar().showAppMenuUpdateBadge(); |
- mCompositorViewHolder.requestRender(); |
+ if (!mVrMode) mCompositorViewHolder.requestRender(); |
} else { |
mToolbarManager.getToolbar().removeAppMenuUpdateBadge(false); |
} |