summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android_webview/browser/browser_view_renderer_impl.cc6
-rw-r--r--android_webview/native/java_browser_view_renderer_helper.cc3
2 files changed, 8 insertions, 1 deletions
diff --git a/android_webview/browser/browser_view_renderer_impl.cc b/android_webview/browser/browser_view_renderer_impl.cc
index 250cdb0..cc3cd8f 100644
--- a/android_webview/browser/browser_view_renderer_impl.cc
+++ b/android_webview/browser/browser_view_renderer_impl.cc
@@ -452,7 +452,13 @@ ScopedJavaLocalRef<jobject> BrowserViewRendererImpl::CapturePicture() {
if (!picture || !g_sw_draw_functions)
return ScopedJavaLocalRef<jobject>();
+ // Return empty Picture objects for empty SkPictures.
JNIEnv* env = AttachCurrentThread();
+ if (picture->width() <= 0 || picture->height() <= 0) {
+ return java_helper_->RecordBitmapIntoPicture(
+ env, ScopedJavaLocalRef<jobject>());
+ }
+
if (g_is_skia_version_compatible) {
return ScopedJavaLocalRef<jobject>(env,
g_sw_draw_functions->create_picture(env, picture->clone()));
diff --git a/android_webview/native/java_browser_view_renderer_helper.cc b/android_webview/native/java_browser_view_renderer_helper.cc
index 1dfd9b2..b2cf4e9 100644
--- a/android_webview/native/java_browser_view_renderer_helper.cc
+++ b/android_webview/native/java_browser_view_renderer_helper.cc
@@ -21,7 +21,8 @@ ScopedJavaLocalRef<jobject> JavaBrowserViewRendererHelper::CreateBitmap(
JNIEnv* env,
int width,
int height) {
- return Java_JavaBrowserViewRendererHelper_createBitmap(env, width, height);
+ return width <= 0 || height <= 0 ? ScopedJavaLocalRef<jobject>() :
+ Java_JavaBrowserViewRendererHelper_createBitmap(env, width, height);
}
void JavaBrowserViewRendererHelper::DrawBitmapIntoCanvas(