Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(315)

Unified Diff: content/browser/compositor/delegated_frame_host.cc

Issue 1113573002: Maintain minimal error response. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove READBACK_NOT_SUPPORTED Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 2aa746dfc9e2a0ccc597e4b6e48b1ba2ee941746..20d896f37d1e8e08771982c1129989ead5604c31 100644
--- a/content/browser/compositor/delegated_frame_host.cc
+++ b/content/browser/compositor/delegated_frame_host.cc
@@ -586,11 +586,13 @@ void DelegatedFrameHost::PrepareTextureCopyOutputResult(
// GLHelper::IsReadbackConfigSupported before we processs the result.
no sievers 2015/05/06 23:08:03 What keeps us from doing this here? And falling ba
sivag 2015/05/07 14:14:20 Actually this fails in the browser tests, where so
// See crbug.com/415682.
scoped_ptr<SkBitmap> bitmap(new SkBitmap);
- if (!bitmap->tryAllocPixels(SkImageInfo::Make(dst_size_in_pixel.width(),
- dst_size_in_pixel.height(),
- color_type,
- kOpaque_SkAlphaType)))
+ if (!bitmap->tryAllocPixels(SkImageInfo::Make(
+ dst_size_in_pixel.width(), dst_size_in_pixel.height(), color_type,
+ kOpaque_SkAlphaType))) {
+ scoped_callback_runner.Reset(base::Bind(
+ callback, SkBitmap(), content::READBACK_BITMAP_ALLOCATION_FAILURE));
return;
+ }
ImageTransportFactory* factory = ImageTransportFactory::GetInstance();
GLHelper* gl_helper = factory->GetGLHelper();
@@ -627,13 +629,13 @@ void DelegatedFrameHost::PrepareTextureCopyOutputResult(
// static
void DelegatedFrameHost::PrepareBitmapCopyOutputResult(
const gfx::Size& dst_size_in_pixel,
- const SkColorType color_type,
+ const SkColorType request_color_type,
ReadbackRequestCallback& callback,
scoped_ptr<cc::CopyOutputResult> result) {
+ SkColorType color_type = request_color_type;
if (color_type != kN32_SkColorType && color_type != kAlpha_8_SkColorType) {
- NOTIMPLEMENTED();
- callback.Run(SkBitmap(), READBACK_FORMAT_NOT_SUPPORTED);
- return;
+ // Switch back to default colortype if format not supported.
+ color_type = kN32_SkColorType;
}
DCHECK(result->HasBitmap());
scoped_ptr<SkBitmap> source = result->TakeBitmap();
@@ -663,7 +665,7 @@ void DelegatedFrameHost::PrepareBitmapCopyOutputResult(
bool success = grayscale_bitmap.tryAllocPixels(
SkImageInfo::MakeA8(scaled_bitmap.width(), scaled_bitmap.height()));
if (!success) {
- callback.Run(SkBitmap(), content::READBACK_MEMORY_ALLOCATION_FAILURE);
+ callback.Run(SkBitmap(), content::READBACK_BITMAP_ALLOCATION_FAILURE);
return;
}
SkCanvas canvas(grayscale_bitmap);

Powered by Google App Engine
This is Rietveld 408576698