Index: chrome/utility/image_decoder_impl.cc |
diff --git a/chrome/utility/image_decoder_impl.cc b/chrome/utility/image_decoder_impl.cc |
index 91cea1b616f391e9a75e816ba93f7d6c1072848e..2873b51e2a60d0637f387a7a895b6b286df810d8 100644 |
--- a/chrome/utility/image_decoder_impl.cc |
+++ b/chrome/utility/image_decoder_impl.cc |
@@ -75,9 +75,11 @@ void ImageDecoderImpl::DecodeImage( |
} |
if (!decoded_image.isNull()) { |
- skia::mojom::BitmapPtr dummy_image = skia::mojom::Bitmap::New(); |
- int64_t struct_size = |
- skia::mojom::GetSerializedSize_(dummy_image, nullptr) + kPadding; |
+ // When serialized, the space taken up by a skia::mojom::Bitmap excluding |
+ // the pixel data payload should be: |
+ // sizeof(skia::mojom::Bitmap::Data_) + pixel data array header (8 bytes) |
+ // Use a bigger number in case we need padding at the end. |
+ int64_t struct_size = sizeof(skia::mojom::Bitmap::Data_) + kPadding; |
int64_t image_size = decoded_image.computeSize64(); |
int halves = 0; |
while (struct_size + (image_size >> 2 * halves) > max_message_size_) |