Index: content/browser/compositor/delegated_frame_host.cc |
diff --git a/content/browser/compositor/delegated_frame_host.cc b/content/browser/compositor/delegated_frame_host.cc |
index 29344440ae716f15bf8100e0625c335acdac403d..d52811b51170f7ca376b098a88da0401ef8bd014 100644 |
--- a/content/browser/compositor/delegated_frame_host.cc |
+++ b/content/browser/compositor/delegated_frame_host.cc |
@@ -573,6 +573,13 @@ void DelegatedFrameHost::PrepareTextureCopyOutputResult( |
DCHECK(result->HasTexture()); |
base::ScopedClosureRunner scoped_callback_runner( |
base::Bind(callback, false, SkBitmap())); |
+ ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
+ GLHelper* gl_helper = factory->GetGLHelper(); |
+ if (!gl_helper) |
+ return; |
+ |
+ if (!gl_helper->IsReadbackConfigSupported(color_type)) |
+ return; |
scoped_ptr<SkBitmap> bitmap(new SkBitmap); |
if (!bitmap->tryAllocPixels(SkImageInfo::Make(dst_size_in_pixel.width(), |
@@ -581,11 +588,6 @@ void DelegatedFrameHost::PrepareTextureCopyOutputResult( |
kOpaque_SkAlphaType))) |
return; |
- ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
- GLHelper* gl_helper = factory->GetGLHelper(); |
- if (!gl_helper) |
- return; |
- |
scoped_ptr<SkAutoLockPixels> bitmap_pixels_lock( |
new SkAutoLockPixels(*bitmap)); |
uint8* pixels = static_cast<uint8*>(bitmap->getPixels()); |