Index: chrome/renderer/chrome_render_frame_observer.cc |
diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc |
index c27edeb7db40e0e5b623902abd17edb6f2599e41..ed9440f5ed1d3c62447d395202a8c20769a4127d 100644 |
--- a/chrome/renderer/chrome_render_frame_observer.cc |
+++ b/chrome/renderer/chrome_render_frame_observer.cc |
@@ -203,10 +203,14 @@ void ChromeRenderFrameObserver::RequestThumbnailForContextNode( |
} |
SkBitmap bitmap; |
- if (thumbnail.colorType() == kN32_SkColorType) |
+ if (thumbnail.colorType() == kN32_SkColorType) { |
bitmap = thumbnail; |
- else |
- thumbnail.copyTo(&bitmap, kN32_SkColorType); |
+ } else { |
+ SkImageInfo info = thumbnail.info().makeColorType(kN32_SkColorType); |
+ if (bitmap.tryAllocPixels(info)) { |
+ thumbnail.readPixels(info, bitmap.getPixels(), bitmap.rowBytes(), 0, 0); |
+ } |
+ } |
std::vector<uint8_t> thumbnail_data; |
if (bitmap.getPixels()) { |