summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc')
-rw-r--r--chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
index 8e1255ce43b..fe622fba3ae 100644
--- a/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
+++ b/chromium/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
@@ -34,6 +34,7 @@
#include <memory>
+#include "base/compiler_specific.h"
#include "base/memory/ptr_util.h"
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
#include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
@@ -78,10 +79,12 @@ ImageDataBuffer::ImageDataBuffer(scoped_refptr<StaticBitmapImage> image) {
pixmap_.reset();
return;
}
+ MSAN_CHECK_MEM_IS_INITIALIZED(pixmap_.addr(), pixmap_.computeByteSize());
retained_image_ = SkImage::MakeRasterData(info, std::move(data), rowBytes);
} else {
if (!retained_image_->peekPixels(&pixmap_))
return;
+ MSAN_CHECK_MEM_IS_INITIALIZED(pixmap_.addr(), pixmap_.computeByteSize());
}
is_valid_ = true;
size_ = IntSize(image->width(), image->height());
@@ -161,7 +164,9 @@ String ImageDataBuffer::ToDataURL(const ImageEncodingMimeType mime_type,
if (!pixmap.colorSpace()->isSRGB()) {
skia_image = SkImage::MakeFromRaster(pixmap, nullptr, nullptr);
skia_image = skia_image->makeColorSpace(SkColorSpace::MakeSRGB());
- skia_image->peekPixels(&pixmap);
+ if (!skia_image->peekPixels(&pixmap))
+ return "data:,";
+ MSAN_CHECK_MEM_IS_INITIALIZED(pixmap.addr(), pixmap.computeByteSize());
}
pixmap.setColorSpace(nullptr);
}