| Index: android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| index f868572acdf78ff9beea53b8581a82c4d16136e4..54a6d2684c721e84cec1da8b02d4187476d92870 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| @@ -369,16 +369,19 @@ public class AwContents implements SmartClipProvider, PostMessageSender.PostMess
|
| // Hold onto a reference to the window (via its wrapper), so that it is not destroyed
|
| // until we are done here.
|
| private final WindowAndroidWrapper mWindowAndroid;
|
| + private final ViewRoot mViewRoot;
|
|
|
| private AwContentsDestroyRunnable(
|
| - long nativeAwContents, WindowAndroidWrapper windowAndroid) {
|
| + long nativeAwContents, WindowAndroidWrapper windowAndroid, ViewRoot viewRoot) {
|
| mNativeAwContents = nativeAwContents;
|
| mWindowAndroid = windowAndroid;
|
| + mViewRoot = viewRoot;
|
| }
|
|
|
| @Override
|
| public void run() {
|
| nativeDestroy(mNativeAwContents);
|
| + mViewRoot.destroy();
|
| }
|
| }
|
|
|
| @@ -812,8 +815,8 @@ public class AwContents implements SmartClipProvider, PostMessageSender.PostMess
|
| Context context, ViewAndroidDelegate viewDelegate,
|
| InternalAccessDelegate internalDispatcher, WebContents webContents,
|
| GestureStateListener gestureStateListener, ContentViewClient contentViewClient,
|
| - WindowAndroid windowAndroid) {
|
| - contentViewCore.initialize(viewDelegate, internalDispatcher, webContents, windowAndroid);
|
| + WindowAndroid windowAndroid, ViewRoot viewRoot) {
|
| + contentViewCore.initialize(viewDelegate, internalDispatcher, webContents, viewRoot);
|
| contentViewCore.setActionModeCallback(
|
| new AwActionModeCallback(mContext, this,
|
| contentViewCore.getActionModeCallbackHelper()));
|
| @@ -1056,9 +1059,10 @@ public class AwContents implements SmartClipProvider, PostMessageSender.PostMess
|
| mContentViewCore = new ContentViewCore(mContext, PRODUCT_VERSION);
|
| mViewAndroidDelegate = new AwViewAndroidDelegate(mContainerView,
|
| mContentViewCore.getRenderCoordinates());
|
| + mViewRoot = ViewRoot.create(mWindowAndroid.getWindowAndroid());
|
| initializeContentViewCore(mContentViewCore, mContext, mViewAndroidDelegate,
|
| mInternalAccessAdapter, webContents, new AwGestureStateListener(),
|
| - mContentViewClient, mWindowAndroid.getWindowAndroid());
|
| + mContentViewClient, mWindowAndroid.getWindowAndroid(), mViewRoot);
|
| nativeSetJavaPeers(mNativeAwContents, this, mWebContentsDelegate, mContentsClientBridge,
|
| mIoThreadClient, mInterceptNavigationDelegate);
|
| mWebContents = mContentViewCore.getWebContents();
|
| @@ -1074,7 +1078,7 @@ public class AwContents implements SmartClipProvider, PostMessageSender.PostMess
|
| // The native side object has been bound to this java instance, so now is the time to
|
| // bind all the native->java relationships.
|
| mCleanupReference = new CleanupReference(
|
| - this, new AwContentsDestroyRunnable(mNativeAwContents, mWindowAndroid));
|
| + this, new AwContentsDestroyRunnable(mNativeAwContents, mWindowAndroid, mViewRoot));
|
| }
|
|
|
| private void installWebContentsObserver() {
|
| @@ -3209,7 +3213,7 @@ public class AwContents implements SmartClipProvider, PostMessageSender.PostMess
|
| // to enter fixedLayoutSize mode is sent before the first resize
|
| // update.
|
| mLayoutSizer.onSizeChanged(w, h, ow, oh);
|
| - getViewRoot().onPhysicalBackingSizeChanged(w, h);
|
| + mViewRoot.onPhysicalBackingSizeChanged(w, h);
|
| mContentViewCore.onSizeChanged(w, h, ow, oh);
|
| nativeOnSizeChanged(mNativeAwContents, w, h, ow, oh);
|
| }
|
| @@ -3285,13 +3289,6 @@ public class AwContents implements SmartClipProvider, PostMessageSender.PostMess
|
| }
|
| }
|
|
|
| - private ViewRoot getViewRoot() {
|
| - if (mViewRoot == null) {
|
| - mViewRoot = nativeGetViewRoot(mNativeAwContents);
|
| - }
|
| - return mViewRoot;
|
| - }
|
| -
|
| // Return true if the GeolocationPermissionAPI should be used.
|
| @CalledByNative
|
| private boolean useLegacyGeolocationPermissionAPI() {
|
| @@ -3395,5 +3392,4 @@ public class AwContents implements SmartClipProvider, PostMessageSender.PostMess
|
|
|
| private native void nativeGrantFileSchemeAccesstoChildProcess(long nativeAwContents);
|
| private native void nativeResumeLoadingCreatedPopupWebContents(long nativeAwContents);
|
| - private native ViewRoot nativeGetViewRoot(long nativeAwContents);
|
| }
|
|
|