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 8338559035220c8762571e0d4a9627c13eeb1464..9770b3f1fc7f12545967dce7b351c7e9a9ffbc82 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java |
@@ -87,6 +87,8 @@ public class AwContents { |
// produce little visible difference. |
private static final float ZOOM_CONTROLS_EPSILON = 0.007f; |
+ private WindowAndroid mWindowAndroid; |
+ |
/** |
* WebKit hit test related data strcutre. These are used to implement |
* getHitTestResult, requestFocusNodeHref, requestImageRef methods in WebView. |
@@ -614,12 +616,11 @@ public class AwContents { |
Context context, InternalAccessDelegate internalDispatcher, long nativeWebContents, |
GestureStateListener gestureStateListener, |
ContentViewClient contentViewClient, |
- ContentViewCore.ZoomControlsDelegate zoomControlsDelegate) { |
+ ContentViewCore.ZoomControlsDelegate zoomControlsDelegate, |
+ WindowAndroid windowAndroid) { |
ContentViewCore contentViewCore = new ContentViewCore(context); |
contentViewCore.initialize(containerView, internalDispatcher, nativeWebContents, |
- context instanceof Activity ? |
- new ActivityWindowAndroid((Activity) context) : |
- new WindowAndroid(context.getApplicationContext())); |
+ windowAndroid); |
contentViewCore.addGestureStateListener(gestureStateListener); |
contentViewCore.setContentViewClient(contentViewClient); |
contentViewCore.setZoomControlsDelegate(zoomControlsDelegate); |
@@ -755,9 +756,13 @@ public class AwContents { |
mCleanupReference = new CleanupReference(this, new DestroyRunnable(mNativeAwContents)); |
long nativeWebContents = nativeGetWebContents(mNativeAwContents); |
+ |
+ mWindowAndroid = mContext instanceof Activity ? |
+ new ActivityWindowAndroid((Activity) mContext) : |
+ new WindowAndroid(mContext.getApplicationContext()); |
boliu
2014/08/20 20:30:00
Move this into createAndInitializeContentViewCore.
hush (inactive)
2014/08/20 21:01:09
createAndInitializeContentViewCore is a static met
|
mContentViewCore = createAndInitializeContentViewCore( |
mContainerView, mContext, mInternalAccessAdapter, nativeWebContents, |
- new AwGestureStateListener(), mContentViewClient, mZoomControls); |
+ new AwGestureStateListener(), mContentViewClient, mZoomControls, mWindowAndroid); |
nativeSetJavaPeers(mNativeAwContents, this, mWebContentsDelegate, mContentsClientBridge, |
mIoThreadClient, mInterceptNavigationDelegate); |
installWebContentsObserver(); |
@@ -2039,10 +2044,10 @@ public class AwContents { |
@CalledByNative |
private void postInvalidateOnAnimation() { |
- if (SUPPORTS_ON_ANIMATION) { |
+ if (SUPPORTS_ON_ANIMATION && !mWindowAndroid.isInsideVSync()) { |
mContainerView.postInvalidateOnAnimation(); |
} else { |
- mContainerView.postInvalidate(); |
+ mContainerView.invalidate(); |
} |
} |