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 841df08ea092a2fca4ccb96fe28bdea58311a1ad..d1b005087a1e3139eacba00391ed71f3c2dac967 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -434,11 +434,11 @@ void RenderWidgetHostViewAndroid::SetBounds(const gfx::Rect& rect) { |
void RenderWidgetHostViewAndroid::GetScaledContentBitmap( |
float scale, |
- SkColorType color_type, |
+ SkColorType preferred_color_type, |
gfx::Rect src_subrect, |
ReadbackRequestCallback& result_callback) { |
if (!host_ || host_->is_hidden() || !IsSurfaceAvailableForCopy()) { |
- result_callback.Run(SkBitmap(), READBACK_NOT_SUPPORTED); |
+ result_callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE); |
return; |
} |
gfx::Size bounds = layer_->bounds(); |
@@ -452,8 +452,8 @@ void RenderWidgetHostViewAndroid::GetScaledContentBitmap( |
DCHECK_GT(device_scale_factor, 0); |
gfx::Size dst_size( |
gfx::ToCeiledSize(gfx::ScaleSize(bounds, scale / device_scale_factor))); |
- CopyFromCompositingSurface( |
- src_subrect, dst_size, result_callback, color_type); |
+ CopyFromCompositingSurface(src_subrect, dst_size, result_callback, |
+ preferred_color_type); |
} |
scoped_refptr<cc::Layer> RenderWidgetHostViewAndroid::CreateDelegatedLayer() |
@@ -918,7 +918,7 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
const gfx::Rect& src_subrect, |
const gfx::Size& dst_size, |
ReadbackRequestCallback& callback, |
- const SkColorType color_type) { |
+ const SkColorType preferred_color_type) { |
TRACE_EVENT0("cc", "RenderWidgetHostViewAndroid::CopyFromCompositingSurface"); |
if (!host_ || host_->is_hidden()) { |
callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE); |
@@ -926,7 +926,7 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
} |
base::TimeTicks start_time = base::TimeTicks::Now(); |
if (using_browser_compositor_ && !IsSurfaceAvailableForCopy()) { |
- callback.Run(SkBitmap(), READBACK_NOT_SUPPORTED); |
+ callback.Run(SkBitmap(), READBACK_SURFACE_UNAVAILABLE); |
return; |
} |
const gfx::Display& display = |
@@ -939,7 +939,7 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
if (!using_browser_compositor_) { |
SynchronousCopyContents(src_subrect_in_pixel, dst_size_in_pixel, callback, |
- color_type); |
+ preferred_color_type); |
UMA_HISTOGRAM_TIMES("Compositing.CopyFromSurfaceTimeSynchronous", |
base::TimeTicks::Now() - start_time); |
return; |
@@ -961,11 +961,8 @@ void RenderWidgetHostViewAndroid::CopyFromCompositingSurface( |
request = cc::CopyOutputRequest::CreateRequest( |
base::Bind(&RenderWidgetHostViewAndroid:: |
PrepareTextureCopyOutputResultForDelegatedReadback, |
- dst_size_in_pixel, |
- color_type, |
- start_time, |
- readback_layer, |
- callback)); |
+ dst_size_in_pixel, preferred_color_type, start_time, |
+ readback_layer, callback)); |
if (!src_subrect_in_pixel.IsEmpty()) |
request->set_area(src_subrect_in_pixel); |
readback_layer->RequestCopyOfOutput(request.Pass()); |
@@ -1894,6 +1891,8 @@ void RenderWidgetHostViewAndroid::PrepareTextureCopyOutputResult( |
output_size_in_pixel.height(), |
color_type, |
kOpaque_SkAlphaType))) { |
+ scoped_callback_runner.Reset( |
+ base::Bind(callback, SkBitmap(), READBACK_BITMAP_ALLOCATION_FAILURE)); |
return; |
} |