Index: content/browser/renderer_host/render_widget_host_view_android.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
index ece82ac7618c42070d992bd411b11f9a4a1672fb..c1aa70b52ef90ce1733e1576ad58885982f04060 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -632,7 +632,15 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
const gfx::Rect& src_subrect, |
const gfx::Size& dst_size, |
const base::Callback<void(bool, const SkBitmap&)>& callback, |
- bool readback_config_rgb565) { |
+ const SkBitmap::Config bitmap_config) { |
+ // Only ARGB888 and RGB565 supported as of now. |
+ bool format_support = ((bitmap_config == SkBitmap::kRGB_565_Config) || |
+ (bitmap_config == SkBitmap::kARGB_8888_Config)); |
+ if (!format_support) { |
+ DCHECK(format_support); |
+ callback.Run(false, SkBitmap()); |
+ return; |
+ } |
base::TimeTicks start_time = base::TimeTicks::Now(); |
if (!using_synchronous_compositor_ && !IsSurfaceAvailableForCopy()) { |
callback.Run(false, SkBitmap()); |
@@ -644,7 +652,8 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
if (!gl_helper) |
return; |
bool check_rgb565_support = gl_helper->CanUseRgb565Readback(); |
- if (readback_config_rgb565 && !check_rgb565_support) { |
+ if ((bitmap_config == SkBitmap::kRGB_565_Config) && |
+ !check_rgb565_support) { |
LOG(ERROR) << "Readbackformat rgb565 not supported"; |
callback.Run(false, SkBitmap()); |
return; |
@@ -677,7 +686,7 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
request = cc::CopyOutputRequest::CreateRequest(base::Bind( |
&RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult, |
dst_size_in_pixel, |
- readback_config_rgb565, |
+ bitmap_config, |
start_time, |
callback)); |
} |
@@ -1400,7 +1409,7 @@ void RenderWidgetHostViewAndroid::OnLostResources() { |
// static |
void RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult( |
const gfx::Size& dst_size_in_pixel, |
- bool readback_config_rgb565, |
+ const SkBitmap::Config bitmap_config, |
const base::TimeTicks& start_time, |
const base::Callback<void(bool, const SkBitmap&)>& callback, |
scoped_ptr<cc::CopyOutputResult> result) { |
@@ -1412,9 +1421,6 @@ void RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult( |
return; |
scoped_ptr<SkBitmap> bitmap(new SkBitmap); |
- SkBitmap::Config bitmap_config = readback_config_rgb565 ? |
- SkBitmap::kRGB_565_Config : |
- SkBitmap::kARGB_8888_Config; |
bitmap->setConfig(bitmap_config, |
dst_size_in_pixel.width(), |
dst_size_in_pixel.height(), |
@@ -1448,7 +1454,7 @@ void RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult( |
gfx::Rect(result->size()), |
dst_size_in_pixel, |
pixels, |
- readback_config_rgb565, |
+ bitmap_config, |
base::Bind(&CopyFromCompositingSurfaceFinished, |
callback, |
base::Passed(&release_callback), |