| 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 35783b4da874eb0031ad8dcf3b89cb106ab65dbc..f0c716f2e158b052a98281dcfbb2edaad19d0db4 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
|
| @@ -10,7 +10,6 @@ import android.graphics.Point;
|
| import android.os.StrictMode;
|
| import android.view.MotionEvent;
|
| import android.view.View;
|
| -import android.view.ViewGroup;
|
| import android.widget.FrameLayout;
|
|
|
| import com.google.vr.ndk.base.AndroidCompat;
|
| @@ -25,7 +24,6 @@ import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.ChromeVersionInfo;
|
| import org.chromium.chrome.browser.WebContentsFactory;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| -import org.chromium.chrome.browser.tab.TabContentViewParent;
|
| import org.chromium.content.browser.ContentView;
|
| import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content_public.browser.WebContents;
|
| @@ -63,7 +61,6 @@ public class VrShellImpl extends GvrLayout implements VrShell {
|
|
|
| private long mNativeVrShell;
|
|
|
| - private FrameLayout mContentCVCContainer;
|
| private FrameLayout mUiCVCContainer;
|
| private FrameLayout mPresentationView;
|
|
|
| @@ -72,14 +69,7 @@ public class VrShellImpl extends GvrLayout implements VrShell {
|
|
|
| // The ContentViewCore for the main content rect in VR.
|
| private ContentViewCore mContentCVC;
|
| - private TabContentViewParent mTabParent;
|
| - private ViewGroup mTabParentParent;
|
| -
|
| - // TODO(mthiesse): Instead of caching these values, make tab reparenting work for this case.
|
| - private int mOriginalTabParentIndex;
|
| - private ViewGroup.LayoutParams mOriginalLayoutParams;
|
| private WindowAndroid mOriginalWindowAndroid;
|
| -
|
| private VrWindowAndroid mContentVrWindowAndroid;
|
|
|
| private WebContents mUiContents;
|
| @@ -89,19 +79,12 @@ public class VrShellImpl extends GvrLayout implements VrShell {
|
| public VrShellImpl(Activity activity) {
|
| super(activity);
|
| mActivity = activity;
|
| - mContentCVCContainer = new FrameLayout(getContext()) {
|
| - @Override
|
| - public boolean dispatchTouchEvent(MotionEvent event) {
|
| - return true;
|
| - }
|
| - };
|
| mUiCVCContainer = new FrameLayout(getContext()) {
|
| @Override
|
| public boolean dispatchTouchEvent(MotionEvent event) {
|
| return true;
|
| }
|
| };
|
| - addView(mContentCVCContainer, 0, new FrameLayout.LayoutParams(0, 0));
|
| addView(mUiCVCContainer, 0, new FrameLayout.LayoutParams(0, 0));
|
|
|
| mPresentationView = new FrameLayout(mActivity);
|
| @@ -170,34 +153,8 @@ public class VrShellImpl extends GvrLayout implements VrShell {
|
| mUiCVC.setTopControlsHeight(0, false);
|
| mUiVrWindowAndroid.onVisibilityChanged(true);
|
|
|
| - reparentContentWindow();
|
| - }
|
| -
|
| - private void reparentContentWindow() {
|
| mOriginalWindowAndroid = mContentCVC.getWindowAndroid();
|
| -
|
| mTab.updateWindowAndroid(mContentVrWindowAndroid);
|
| -
|
| - mTabParent = mTab.getView();
|
| - mTabParentParent = (ViewGroup) mTabParent.getParent();
|
| - mOriginalTabParentIndex = mTabParentParent.indexOfChild(mTabParent);
|
| - mOriginalLayoutParams = mTabParent.getLayoutParams();
|
| - mTabParentParent.removeView(mTabParent);
|
| -
|
| - mContentCVCContainer.addView(mTabParent, new FrameLayout.LayoutParams(
|
| - FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
|
| - }
|
| -
|
| - private void restoreContentWindow() {
|
| - mTab.updateWindowAndroid(mOriginalWindowAndroid);
|
| -
|
| - // If the tab's view has changed, the necessary view reparenting has already been done.
|
| - if (mTab.getView() == mTabParent) {
|
| - mContentCVCContainer.removeView(mTabParent);
|
| - mTabParentParent.addView(mTabParent, mOriginalTabParentIndex, mOriginalLayoutParams);
|
| - mTabParent.requestFocus();
|
| - }
|
| - mTabParent = null;
|
| }
|
|
|
| @CalledByNative
|
| @@ -212,8 +169,7 @@ public class VrShellImpl extends GvrLayout implements VrShell {
|
|
|
| Point size = new Point(surfaceWidth, surfaceHeight);
|
| mUiVirtualDisplay.update(size, size, dpr, null, null, null);
|
| -
|
| - mUiCVCContainer.setLayoutParams(new FrameLayout.LayoutParams(surfaceWidth, surfaceHeight));
|
| + mUiCVC.onSizeChanged(surfaceWidth, surfaceHeight, 0, 0);
|
| mUiCVC.onPhysicalBackingSizeChanged(surfaceWidth, surfaceHeight);
|
| nativeUIBoundsChanged(mNativeVrShell, surfaceWidth, surfaceHeight, dpr);
|
| }
|
| @@ -226,9 +182,7 @@ public class VrShellImpl extends GvrLayout implements VrShell {
|
|
|
| Point size = new Point(surfaceWidth, surfaceHeight);
|
| mContentVirtualDisplay.update(size, size, dpr, null, null, null);
|
| -
|
| - mContentCVCContainer.setLayoutParams(new FrameLayout.LayoutParams(
|
| - surfaceWidth, surfaceHeight));
|
| + mContentCVC.onSizeChanged(surfaceWidth, surfaceHeight, 0, 0);
|
| mContentCVC.onPhysicalBackingSizeChanged(surfaceWidth, surfaceHeight);
|
| nativeContentBoundsChanged(mNativeVrShell, surfaceWidth, surfaceHeight, dpr);
|
| }
|
| @@ -274,7 +228,9 @@ public class VrShellImpl extends GvrLayout implements VrShell {
|
| nativeDestroy(mNativeVrShell);
|
| mNativeVrShell = 0;
|
| }
|
| - restoreContentWindow();
|
| + mTab.updateWindowAndroid(mOriginalWindowAndroid);
|
| + mContentCVC.onSizeChanged(mContentCVC.getContainerView().getWidth(),
|
| + mContentCVC.getContainerView().getHeight(), 0, 0);
|
| mUiContents.destroy();
|
| mContentVirtualDisplay.destroy();
|
| mUiVirtualDisplay.destroy();
|
|
|