| 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),
 | 
| 
 |