summaryrefslogtreecommitdiffstats
path: root/android_webview/java
diff options
context:
space:
mode:
authorkristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-29 01:26:19 +0000
committerkristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-29 01:26:19 +0000
commit2f03dca3b69a9975a4bd53a6b00947bf8cb3be6e (patch)
treec9c79661a00de16ea16b9af5f9ea274a60ef5d54 /android_webview/java
parent1b8f8cd4545168b1b36b5ae066acc06e17963650 (diff)
downloadchromium_src-2f03dca3b69a9975a4bd53a6b00947bf8cb3be6e.zip
chromium_src-2f03dca3b69a9975a4bd53a6b00947bf8cb3be6e.tar.gz
chromium_src-2f03dca3b69a9975a4bd53a6b00947bf8cb3be6e.tar.bz2
Fix capture picture implementation
Capturing the whole content, and starting the capture from the origin. BUG=224003 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/19864002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214151 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/java')
-rw-r--r--android_webview/java/src/org/chromium/android_webview/AwContents.java6
-rw-r--r--android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java9
2 files changed, 12 insertions, 3 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 55ebcbd..bd64336 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -671,7 +671,9 @@ public class AwContents {
}
public Picture capturePicture() {
- return nativeCapturePicture(mNativeAwContents);
+ return nativeCapturePicture(mNativeAwContents,
+ mScrollOffsetManager.computeHorizontalScrollRange(),
+ mScrollOffsetManager.computeVerticalScrollRange());
}
/**
@@ -1774,7 +1776,7 @@ public class AwContents {
private native void nativeSetBackgroundColor(int nativeAwContents, int color);
private native int nativeGetAwDrawGLViewContext(int nativeAwContents);
- private native Picture nativeCapturePicture(int nativeAwContents);
+ private native Picture nativeCapturePicture(int nativeAwContents, int width, int height);
private native void nativeEnableOnNewPicture(int nativeAwContents, boolean enabled);
private native void nativeInvokeGeolocationCallback(
diff --git a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
index cd06606..fb54279 100644
--- a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
+++ b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
@@ -8,6 +8,7 @@ import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Picture;
+import android.util.Log;
import android.util.LruCache;
import org.chromium.base.CalledByNative;
@@ -19,6 +20,7 @@ import org.chromium.content.common.TraceEvent;
*/
@JNINamespace("android_webview")
public class JavaBrowserViewRendererHelper {
+ private static final String LOGTAG = "JavaBrowserViewRendererHelper";
// Until the full HW path is ready, we limit to 5 AwContents on the screen at once.
private static LruCache<Integer, Bitmap> sBitmapCache = new LruCache<Integer, Bitmap>(5);
@@ -39,7 +41,12 @@ public class JavaBrowserViewRendererHelper {
}
Bitmap bitmap = sBitmapCache.get(ownerKey);
if (bitmap == null || bitmap.getWidth() != width || bitmap.getHeight() != height) {
- bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ try {
+ bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ } catch (OutOfMemoryError e) {
+ android.util.Log.w(LOGTAG, "Error allocating bitmap");
+ return null;
+ }
if (ownerKey != 0) {
if (sBitmapCache.size() > AwContents.getNativeInstanceCount()) {
sBitmapCache.evictAll();