Loading core/java/android/webkit/WebView.java +18 −11 Original line number Diff line number Diff line Loading @@ -366,6 +366,7 @@ public class WebView extends AbsoluteLayout private final Rect mGLRectViewport = new Rect(); private final Rect mViewRectViewport = new Rect(); private final RectF mVisibleContentRect = new RectF(); private boolean mGLViewportEmpty = false; /** Loading Loading @@ -4607,11 +4608,14 @@ public class WebView extends AbsoluteLayout + " extras=" + extras); } calcOurContentVisibleRectF(mVisibleContentRect); if (canvas.isHardwareAccelerated()) { int functor = nativeGetDrawGLFunction(mNativeClass, mGLViewportEmpty ? null : mGLRectViewport, mGLViewportEmpty ? null : mViewRectViewport, getScale(), extras); ((HardwareCanvas) canvas).callDrawGLFunction(functor); Rect glRectViewport = mGLViewportEmpty ? null : mGLRectViewport; Rect viewRectViewport = mGLViewportEmpty ? null : mViewRectViewport; int functor = nativeGetDrawGLFunction(mNativeClass, glRectViewport, viewRectViewport, mVisibleContentRect, getScale(), extras); ((HardwareCanvas) canvas).callDrawGLFunction(functor); if (mHardwareAccelSkia != getSettings().getHardwareAccelSkiaEnabled()) { mHardwareAccelSkia = getSettings().getHardwareAccelSkiaEnabled(); nativeUseHardwareAccelSkia(mHardwareAccelSkia); Loading @@ -4627,7 +4631,8 @@ public class WebView extends AbsoluteLayout canvas.setDrawFilter(df); // XXX: Revisit splitting content. Right now it causes a // synchronization problem with layers. int content = nativeDraw(canvas, color, extras, false); int content = nativeDraw(canvas, mVisibleContentRect, color, extras, false); canvas.setDrawFilter(null); if (!mBlockWebkitViewMessages && content != 0) { mWebViewCore.sendMessage(EventHub.SPLIT_PICTURE_SET, content, 0); Loading Loading @@ -5797,8 +5802,9 @@ public class WebView extends AbsoluteLayout } else { mGLViewportEmpty = true; } calcOurContentVisibleRectF(mVisibleContentRect); nativeUpdateDrawGLFunction(mGLViewportEmpty ? null : mGLRectViewport, mGLViewportEmpty ? null : mViewRectViewport); mGLViewportEmpty ? null : mViewRectViewport, mVisibleContentRect); } /** Loading Loading @@ -8795,7 +8801,6 @@ public class WebView extends AbsoluteLayout mSendScrollEvent = false; recordNewContentSize(draw.mContentSize.x, draw.mContentSize.y, updateLayout); if (isPictureAfterFirstLayout) { // Reset the last sent data here since dealing with new page. mLastWidthSent = 0; Loading Loading @@ -9366,7 +9371,8 @@ public class WebView extends AbsoluteLayout * @hide only needs to be accessible to Browser and testing */ public void drawPage(Canvas canvas) { nativeDraw(canvas, 0, 0, false); calcOurContentVisibleRectF(mVisibleContentRect); nativeDraw(canvas, mVisibleContentRect, 0, 0, false); } /** Loading Loading @@ -9497,13 +9503,14 @@ public class WebView extends AbsoluteLayout * MUST be passed to WebViewCore with SPLIT_PICTURE_SET message so that the * native allocation can be freed. */ private native int nativeDraw(Canvas canvas, int color, int extra, boolean splitIfNeeded); private native int nativeDraw(Canvas canvas, RectF visibleRect, int color, int extra, boolean splitIfNeeded); private native void nativeDumpDisplayTree(String urlOrNull); private native boolean nativeEvaluateLayersAnimations(int nativeInstance); private native int nativeGetDrawGLFunction(int nativeInstance, Rect rect, Rect viewRect, float scale, int extras); private native void nativeUpdateDrawGLFunction(Rect rect, Rect viewRect); Rect viewRect, RectF visibleRect, float scale, int extras); private native void nativeUpdateDrawGLFunction(Rect rect, Rect viewRect, RectF visibleRect); private native void nativeExtendSelection(int x, int y); private native int nativeFindAll(String findLower, String findUpper, boolean sameAsLastSearch); Loading Loading
core/java/android/webkit/WebView.java +18 −11 Original line number Diff line number Diff line Loading @@ -366,6 +366,7 @@ public class WebView extends AbsoluteLayout private final Rect mGLRectViewport = new Rect(); private final Rect mViewRectViewport = new Rect(); private final RectF mVisibleContentRect = new RectF(); private boolean mGLViewportEmpty = false; /** Loading Loading @@ -4607,11 +4608,14 @@ public class WebView extends AbsoluteLayout + " extras=" + extras); } calcOurContentVisibleRectF(mVisibleContentRect); if (canvas.isHardwareAccelerated()) { int functor = nativeGetDrawGLFunction(mNativeClass, mGLViewportEmpty ? null : mGLRectViewport, mGLViewportEmpty ? null : mViewRectViewport, getScale(), extras); ((HardwareCanvas) canvas).callDrawGLFunction(functor); Rect glRectViewport = mGLViewportEmpty ? null : mGLRectViewport; Rect viewRectViewport = mGLViewportEmpty ? null : mViewRectViewport; int functor = nativeGetDrawGLFunction(mNativeClass, glRectViewport, viewRectViewport, mVisibleContentRect, getScale(), extras); ((HardwareCanvas) canvas).callDrawGLFunction(functor); if (mHardwareAccelSkia != getSettings().getHardwareAccelSkiaEnabled()) { mHardwareAccelSkia = getSettings().getHardwareAccelSkiaEnabled(); nativeUseHardwareAccelSkia(mHardwareAccelSkia); Loading @@ -4627,7 +4631,8 @@ public class WebView extends AbsoluteLayout canvas.setDrawFilter(df); // XXX: Revisit splitting content. Right now it causes a // synchronization problem with layers. int content = nativeDraw(canvas, color, extras, false); int content = nativeDraw(canvas, mVisibleContentRect, color, extras, false); canvas.setDrawFilter(null); if (!mBlockWebkitViewMessages && content != 0) { mWebViewCore.sendMessage(EventHub.SPLIT_PICTURE_SET, content, 0); Loading Loading @@ -5797,8 +5802,9 @@ public class WebView extends AbsoluteLayout } else { mGLViewportEmpty = true; } calcOurContentVisibleRectF(mVisibleContentRect); nativeUpdateDrawGLFunction(mGLViewportEmpty ? null : mGLRectViewport, mGLViewportEmpty ? null : mViewRectViewport); mGLViewportEmpty ? null : mViewRectViewport, mVisibleContentRect); } /** Loading Loading @@ -8795,7 +8801,6 @@ public class WebView extends AbsoluteLayout mSendScrollEvent = false; recordNewContentSize(draw.mContentSize.x, draw.mContentSize.y, updateLayout); if (isPictureAfterFirstLayout) { // Reset the last sent data here since dealing with new page. mLastWidthSent = 0; Loading Loading @@ -9366,7 +9371,8 @@ public class WebView extends AbsoluteLayout * @hide only needs to be accessible to Browser and testing */ public void drawPage(Canvas canvas) { nativeDraw(canvas, 0, 0, false); calcOurContentVisibleRectF(mVisibleContentRect); nativeDraw(canvas, mVisibleContentRect, 0, 0, false); } /** Loading Loading @@ -9497,13 +9503,14 @@ public class WebView extends AbsoluteLayout * MUST be passed to WebViewCore with SPLIT_PICTURE_SET message so that the * native allocation can be freed. */ private native int nativeDraw(Canvas canvas, int color, int extra, boolean splitIfNeeded); private native int nativeDraw(Canvas canvas, RectF visibleRect, int color, int extra, boolean splitIfNeeded); private native void nativeDumpDisplayTree(String urlOrNull); private native boolean nativeEvaluateLayersAnimations(int nativeInstance); private native int nativeGetDrawGLFunction(int nativeInstance, Rect rect, Rect viewRect, float scale, int extras); private native void nativeUpdateDrawGLFunction(Rect rect, Rect viewRect); Rect viewRect, RectF visibleRect, float scale, int extras); private native void nativeUpdateDrawGLFunction(Rect rect, Rect viewRect, RectF visibleRect); private native void nativeExtendSelection(int x, int y); private native int nativeFindAll(String findLower, String findUpper, boolean sameAsLastSearch); Loading