Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2796)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java

Issue 2595263002: Introduce ViewRoot forwarding input/view events to native (Closed)
Patch Set: rebased & ViewAndroud::Bounds Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 905b8f8ef3a34b17d9fbf10b4dbf1d1f71fea4a7..8c4e47246f1e558cfba296d82298b18509fe15da 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
@@ -31,7 +31,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;
@@ -72,12 +72,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;
@@ -122,17 +124,20 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
mTab = currentTab;
mContentCVC = mTab.getContentViewCore();
mContentVrWindowAndroid = new VrWindowAndroid(mActivity, mContentVirtualDisplay);
+ mContentVrViewRoot = ViewRoot.create(mContentVrWindowAndroid);
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.
@@ -169,8 +174,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
@@ -251,12 +256,19 @@ public class VrShellImpl extends GvrLayout implements VrShell, SurfaceHolder.Cal
nativeDestroy(mNativeVrShell);
mNativeVrShell = 0;
}
- 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();
}
@@ -309,7 +321,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);

Powered by Google App Engine
This is Rietveld 408576698