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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java

Issue 2595263002: Introduce ViewRoot forwarding input/view events to native (Closed)
Patch Set: addressed comments 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: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
index d51e32f303eb6f4bf2248e4e6e07fc28bd275303..39b80d729cf4cea1bcb64218ad7fe183183a19b7 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
@@ -70,6 +70,7 @@ import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.device.gamepad.GamepadList;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.ViewAndroidDelegate;
+import org.chromium.ui.base.ViewRoot;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.base.ime.TextInputType;
import org.chromium.ui.display.DisplayAndroid;
@@ -583,7 +584,7 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Displa
// deleting it after destroying the ContentViewCore.
public void initialize(ViewAndroidDelegate viewDelegate,
InternalAccessDelegate internalDispatcher, WebContents webContents,
- WindowAndroid windowAndroid) {
+ WindowAndroid windowAndroid, ViewRoot viewRoot) {
boliu 2017/01/04 18:58:06 idea.. maybe should just pass in view root everywh
Jinsuk Kim 2017/01/05 11:03:12 Nice idea.
mViewAndroidDelegate = viewDelegate;
setContainerView(viewDelegate.getContainerView());
long windowNativePointer = windowAndroid.getNativePointer();
@@ -597,8 +598,8 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Displa
mJoystickScrollProvider =
new JoystickScrollProvider(webContents, getContainerView(), windowAndroid);
- mNativeContentViewCore = nativeInit(webContents, mViewAndroidDelegate, windowNativePointer,
- dipScale, mRetainedJavaScriptObjects);
+ mNativeContentViewCore = nativeInit(webContents, mViewAndroidDelegate, viewRoot, dipScale,
+ mRetainedJavaScriptObjects);
mWebContents = nativeGetWebContentsAndroid(mNativeContentViewCore);
setContainerViewInternals(internalDispatcher);
@@ -619,11 +620,12 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Displa
* Updates the native {@link ContentViewCore} with a new window. This moves the NativeView and
* attached it to the new NativeWindow linked with the given {@link WindowAndroid}.
* @param windowAndroid The new {@link WindowAndroid} for this {@link ContentViewCore}.
+ * @param viewRoot {@link ViewRoot} used to forward events to native.
*/
- public void updateWindowAndroid(WindowAndroid windowAndroid) {
+ public void updateWindowAndroid(WindowAndroid windowAndroid, ViewRoot viewRoot) {
removeDisplayAndroidObserver();
long windowNativePointer = windowAndroid == null ? 0 : windowAndroid.getNativePointer();
- nativeUpdateWindowAndroid(mNativeContentViewCore, windowNativePointer);
+ nativeUpdateWindowAndroid(mNativeContentViewCore, viewRoot, windowNativePointer);
// TODO(yusufo): Rename this call to be general for tab reparenting.
// Clean up cached popups that may have been created with an old activity.
@@ -2784,11 +2786,11 @@ public class ContentViewCore implements AccessibilityStateChangeListener, Displa
}
private native long nativeInit(WebContents webContents, ViewAndroidDelegate viewAndroidDelegate,
- long windowAndroidPtr, float dipScale, HashSet<Object> retainedObjectSet);
+ ViewRoot viewRoot, float dipScale, HashSet<Object> retainedObjectSet);
private static native ContentViewCore nativeFromWebContentsAndroid(WebContents webContents);
private native void nativeUpdateWindowAndroid(
- long nativeContentViewCoreImpl, long windowAndroidPtr);
+ long nativeContentViewCoreImpl, ViewRoot viewRoot, long windowAndroidPtr);
private native WebContents nativeGetWebContentsAndroid(long nativeContentViewCoreImpl);
private native WindowAndroid nativeGetJavaWindowAndroid(long nativeContentViewCoreImpl);

Powered by Google App Engine
This is Rietveld 408576698