diff options
3 files changed, 5 insertions, 4 deletions
diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc index 81d59d0..c9b6394 100644 --- a/content/browser/android/content_view_core_impl.cc +++ b/content/browser/android/content_view_core_impl.cc @@ -639,7 +639,7 @@ void ContentViewCoreImpl::GetScaledContentBitmap( gfx::Rect src_subrect, ReadbackRequestCallback& result_callback) { RenderWidgetHostViewAndroid* view = GetRenderWidgetHostViewAndroid(); - if (!view) { + if (!view || color_type == kUnknown_SkColorType) { result_callback.Run(SkBitmap(), READBACK_FAILED); return; } diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java b/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java index ded0664..a84e44f 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java +++ b/content/public/android/java/src/org/chromium/content/browser/ContentReadbackHandler.java @@ -78,10 +78,11 @@ public abstract class ContentReadbackHandler { * @param srcRect A subrect of the original content to capture. If this is empty, it will grab * the whole surface. * @param view The {@link ContentViewCore} to grab the bitmap from. + * @param config The output content bitmap configuration. * @param callback The callback to be executed after readback completes. */ public void getContentBitmapAsync(float scale, Rect srcRect, ContentViewCore view, - GetBitmapCallback callback) { + Bitmap.Config config, GetBitmapCallback callback) { if (!readyForReadback()) { callback.onFinishGetBitmap(null); return; @@ -91,7 +92,7 @@ public abstract class ContentReadbackHandler { int readbackId = mNextReadbackId++; mGetBitmapRequests.put(readbackId, callback); nativeGetContentBitmap(mNativeContentReadbackHandler, readbackId, scale, - Bitmap.Config.ARGB_8888, srcRect.top, srcRect.left, srcRect.width(), + config, srcRect.top, srcRect.left, srcRect.width(), srcRect.height(), view); } diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewReadbackTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewReadbackTest.java index efed06e..03b3885 100644 --- a/content/public/android/javatests/src/org/chromium/content/browser/ContentViewReadbackTest.java +++ b/content/public/android/javatests/src/org/chromium/content/browser/ContentViewReadbackTest.java @@ -115,7 +115,7 @@ public class ContentViewReadbackTest extends ContentShellTestBase { contentReadbackHandler.initNativeContentReadbackHandler(); contentReadbackHandler.getContentBitmapAsync(1.0f, new Rect(), getContentViewCore(), - callback); + Bitmap.Config.ARGB_8888, callback); } }); assertWaitForReadback(readbackDone); |