diff options
author | hush@chromium.org <hush@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-24 14:13:37 +0000 |
---|---|---|
committer | hush@chromium.org <hush@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-24 14:13:37 +0000 |
commit | 28a553d41969e3b864be50115e7658105ea8525a (patch) | |
tree | c800b09d18825ee5aa8082f0a855c89b3477e1df /android_webview | |
parent | bd39f6b77d584213bd66f8701a8fae270742e74f (diff) | |
download | chromium_src-28a553d41969e3b864be50115e7658105ea8525a.zip chromium_src-28a553d41969e3b864be50115e7658105ea8525a.tar.gz chromium_src-28a553d41969e3b864be50115e7658105ea8525a.tar.bz2 |
Early out when the clip is empty for software draws.
Otherwise WebView will draw with an auxiliary bitmap when the clip
is empty.
BUG=396981
Review URL: https://codereview.chromium.org/407093012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285245 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview')
-rw-r--r-- | android_webview/java/src/org/chromium/android_webview/AwContents.java | 9 |
1 files changed, 9 insertions, 0 deletions
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 fa623ca..bfec53f 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java @@ -2177,6 +2177,9 @@ public class AwContents { private int mLayerType = View.LAYER_TYPE_NONE; private ComponentCallbacks2 mComponentCallbacks; + // Only valid within software onDraw(). + private final Rect mClipBoundsTemporary = new Rect(); + @Override public void onDraw(Canvas canvas) { if (mNativeAwContents == 0) { @@ -2184,6 +2187,12 @@ public class AwContents { return; } + // For hardware draws, the clip at onDraw time could be different + // from the clip during DrawGL. + if (!canvas.isHardwareAccelerated() && !canvas.getClipBounds(mClipBoundsTemporary)) { + return; + } + mScrollOffsetManager.syncScrollOffsetFromOnDraw(); Rect globalVisibleRect = getGlobalVisibleRect(); if (!nativeOnDraw(mNativeAwContents, canvas, canvas.isHardwareAccelerated(), |