Index: android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java |
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 85d32c194d1b41fd6805468035755d4bd6d63ad8..54bb33d6a21dda874127814112dd8d5c95379b7d 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java |
+++ b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java |
@@ -21,9 +21,17 @@ public class JavaBrowserViewRendererHelper { |
/** |
* Provides a Bitmap object with a given width and height used for auxiliary rasterization. |
+ * |canvas| is optional and if supplied indicates the Canvas that this Bitmap will be |
+ * drawn into. Note the Canvas will not be modified in any way. |
*/ |
@CalledByNative |
- private static Bitmap createBitmap(int width, int height) { |
+ private static Bitmap createBitmap(int width, int height, Canvas canvas) { |
+ if (canvas != null) { |
+ // When drawing into a Canvas, there is a maximum size imposed |
+ // on Bitmaps that can be drawn. Respect that limit. |
+ width = Math.min(width, canvas.getMaximumBitmapWidth()); |
+ height = Math.min(height, canvas.getMaximumBitmapHeight()); |
+ } |
return Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); |
} |