diff options
-rw-r--r-- | android_webview/browser/browser_view_renderer_impl.cc | 6 | ||||
-rw-r--r-- | android_webview/native/java_browser_view_renderer_helper.cc | 3 |
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( |