Commit 56fa2d6b authored by Sasha McIntosh's avatar Sasha McIntosh Committed by Commit Bot

Prevent DCHCEK crash in jpeg image decoder.

Additionally disable YUV decoding when
ImageBitmap::GetSkImageFromDecoder is called, as the bitmap is soon
after requesed from the SkImage.

Bug: 1041307
Change-Id: I0cdbfd4188d4c44453bab8ea49b199d32235ef07
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1998973Reviewed-by: default avatarStephen Chenney <schenney@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Sasha McIntosh <sashamcintosh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735546}
parent 88fd72c5
......@@ -607,7 +607,8 @@ ImageBitmap::ImageBitmap(ImageElementBase* image,
: ImageDecoder::kAlphaNotPremultiplied,
ImageDecoder::kDefaultBitDepth,
parsed_options.has_color_space_conversion ? ColorBehavior::Tag()
: ColorBehavior::Ignore()));
: ColorBehavior::Ignore(),
ImageDecoder::OverrideAllowDecodeToYuv::kDeny));
if (!decoder)
return;
skia_image = ImageBitmap::GetSkImageFromDecoder(std::move(decoder));
......
......@@ -321,7 +321,7 @@ void DecodeImageOnDecoderThread(
SegmentReader::CreateFromSkData(
SkData::MakeWithoutCopy(contents.Data(), contents.DataLength())),
data_complete, alpha_option, ImageDecoder::kDefaultBitDepth,
color_behavior);
color_behavior, ImageDecoder::OverrideAllowDecodeToYuv::kDeny);
sk_sp<SkImage> frame;
if (decoder) {
frame = ImageBitmap::GetSkImageFromDecoder(std::move(decoder));
......
......@@ -39,7 +39,7 @@ class ClipboardImageWriter final : public ClipboardWriter {
SegmentReader::CreateFromSkData(SkData::MakeWithoutCopy(
png_data->Data(), png_data->ByteLengthAsSizeT())),
true, ImageDecoder::kAlphaPremultiplied, ImageDecoder::kDefaultBitDepth,
ColorBehavior::Tag());
ColorBehavior::Tag(), ImageDecoder::OverrideAllowDecodeToYuv::kDeny);
sk_sp<SkImage> image = nullptr;
// |decoder| is nullptr if |png_data| doesn't begin with the PNG signature.
if (decoder)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment