| 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 5ad5b77077b35e11cea299f729d3a9c6781c0349..4a469fcd09fc6c7f0c8992ac78c05999617c5dff 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
|
| @@ -32,7 +32,7 @@ import org.chromium.content.browser.ContentView;
|
| import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content_public.browser.WebContents;
|
| import org.chromium.ui.base.ViewAndroidDelegate;
|
| -import org.chromium.ui.base.WindowAndroid;
|
| +import org.chromium.ui.base.ViewRoot;
|
| import org.chromium.ui.display.DisplayAndroid;
|
| import org.chromium.ui.display.VirtualDisplayAndroid;
|
|
|
| @@ -73,12 +73,14 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
|
|
|
| // The ContentViewCore for the main content rect in VR.
|
| private ContentViewCore mContentCVC;
|
| - private WindowAndroid mOriginalWindowAndroid;
|
| + private ViewRoot mOriginalViewRoot;
|
| private VrWindowAndroid mContentVrWindowAndroid;
|
| + private ViewRoot mContentVrViewRoot;
|
|
|
| private WebContents mUiContents;
|
| private ContentViewCore mUiCVC;
|
| private VrWindowAndroid mUiVrWindowAndroid;
|
| + private ViewRoot mUiVrViewRoot;
|
|
|
| private boolean mReprojectedRendering;
|
|
|
| @@ -125,6 +127,7 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
|
| mTab = currentTab;
|
| mContentCVC = mTab.getContentViewCore();
|
| mContentVrWindowAndroid = new VrWindowAndroid(mActivity, mContentVirtualDisplay);
|
| + mContentVrViewRoot = ViewRoot.create(mContentVrWindowAndroid);
|
|
|
| // Make sure we are not redirecting to another app, i.e. out of VR mode.
|
| mNonVrTabRedirectHandler = mTab.getTabRedirectHandler();
|
| @@ -137,14 +140,16 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
|
|
|
| mUiVrWindowAndroid = new VrWindowAndroid(mActivity, mUiVirtualDisplay);
|
| mUiContents = WebContentsFactory.createWebContents(true, false);
|
| + mUiVrViewRoot = ViewRoot.create(mUiVrWindowAndroid);
|
| +
|
| mUiCVC = new ContentViewCore(mActivity, ChromeVersionInfo.getProductVersion());
|
| ContentView uiContentView = ContentView.createContentView(mActivity, mUiCVC);
|
| mUiCVC.initialize(ViewAndroidDelegate.createBasicDelegate(uiContentView),
|
| - uiContentView, mUiContents, mUiVrWindowAndroid);
|
| + uiContentView, mUiContents, mUiVrViewRoot);
|
|
|
| mNativeVrShell = nativeInit(mContentCVC.getWebContents(),
|
| - mContentVrWindowAndroid.getNativePointer(), mUiContents,
|
| - mUiVrWindowAndroid.getNativePointer(), forWebVR, delegate,
|
| + mContentVrViewRoot.getNativePtr(), mUiContents,
|
| + mUiVrViewRoot.getNativePtr(), forWebVR, delegate,
|
| getGvrApi().getNativeGvrContext(), mReprojectedRendering);
|
|
|
| // Set the UI and content sizes before we load the UI.
|
| @@ -181,8 +186,8 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
|
| mUiCVC.setTopControlsHeight(0, false);
|
| mUiVrWindowAndroid.onVisibilityChanged(true);
|
|
|
| - mOriginalWindowAndroid = mContentCVC.getWindowAndroid();
|
| - mTab.updateWindowAndroid(mContentVrWindowAndroid);
|
| + mOriginalViewRoot = mTab.getViewRoot();
|
| + mTab.updateViewRoot(mContentVrViewRoot);
|
| }
|
|
|
| @CalledByNative
|
| @@ -264,12 +269,19 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
|
| mNativeVrShell = 0;
|
| }
|
| mTab.setTabRedirectHandler(mNonVrTabRedirectHandler);
|
| - mTab.updateWindowAndroid(mOriginalWindowAndroid);
|
| + mTab.updateViewRoot(mOriginalViewRoot);
|
| mContentCVC.onSizeChanged(mContentCVC.getContainerView().getWidth(),
|
| mContentCVC.getContainerView().getHeight(), 0, 0);
|
| mUiContents.destroy();
|
| +
|
| + mContentVrWindowAndroid.destroy();
|
| + mContentVrViewRoot.destroy();
|
| +
|
| mContentVirtualDisplay.destroy();
|
| mUiVirtualDisplay.destroy();
|
| +
|
| + mUiVrWindowAndroid.destroy();
|
| + mUiVrViewRoot.destroy();
|
| super.shutdown();
|
| }
|
|
|
| @@ -322,7 +334,7 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
|
| }
|
|
|
| private native long nativeInit(WebContents contentWebContents,
|
| - long nativeContentWindowAndroid, WebContents uiWebContents, long nativeUiWindowAndroid,
|
| + long nativeContentViewRoot, WebContents uiWebContents, long nativeUiViewRoot,
|
| boolean forWebVR, VrShellDelegate delegate, long gvrApi, boolean reprojectedRendering);
|
| private native void nativeSetSurface(long nativeVrShell, Surface surface);
|
| private native void nativeLoadUIContent(long nativeVrShell);
|
|
|