Index: third_party/WebKit/Source/core/frame/ImageBitmap.h |
diff --git a/third_party/WebKit/Source/core/frame/ImageBitmap.h b/third_party/WebKit/Source/core/frame/ImageBitmap.h |
index 1e6e3db9db56924decb8f44f2124148eb065a267..bb5aa15194715dee7716fe4fbb397b23429b68e9 100644 |
--- a/third_party/WebKit/Source/core/frame/ImageBitmap.h |
+++ b/third_party/WebKit/Source/core/frame/ImageBitmap.h |
@@ -30,6 +30,10 @@ enum AlphaDisposition { |
PremultiplyAlpha, |
DontPremultiplyAlpha, |
}; |
+enum DataColorFormat { |
+ RGBAColorType, |
+ N32ColorType, |
+}; |
class CORE_EXPORT ImageBitmap final : public GarbageCollectedFinalized<ImageBitmap>, public ScriptWrappable, public CanvasImageSource, public ImageBitmapSource { |
DEFINE_WRAPPERTYPEINFO(); |
@@ -37,11 +41,15 @@ public: |
static ImageBitmap* create(HTMLImageElement*, const IntRect&, Document*, const ImageBitmapOptions& = ImageBitmapOptions()); |
static ImageBitmap* create(HTMLVideoElement*, const IntRect&, Document*, const ImageBitmapOptions& = ImageBitmapOptions()); |
static ImageBitmap* create(HTMLCanvasElement*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions()); |
- static ImageBitmap* create(ImageData*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions(), const bool& isImageDataPremultiplied = false, const bool& isImageDataOriginClean = true); |
+ static ImageBitmap* create(ImageData*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions()); |
static ImageBitmap* create(ImageBitmap*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions()); |
static ImageBitmap* create(PassRefPtr<StaticBitmapImage>); |
static ImageBitmap* create(PassRefPtr<StaticBitmapImage>, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions()); |
static ImageBitmap* create(WebExternalTextureMailbox&); |
+ // This function is called by structured-cloning an ImageBitmap. |
+ // isImageBitmapPremultiplied indicates whether the original ImageBitmap is premultiplied or not. |
+ // isImageBitmapOriginClean indicates whether the original ImageBitmap is origin clean or not. |
+ static ImageBitmap* create(std::unique_ptr<uint8_t[]> data, uint32_t width, uint32_t height, bool isImageBitmapPremultiplied, bool isImageBitmapOriginClean); |
static PassRefPtr<SkImage> getSkImageFromDecoder(std::unique_ptr<ImageDecoder>); |
// Type and helper function required by CallbackPromiseAdapter: |
@@ -49,7 +57,7 @@ public: |
static ImageBitmap* take(ScriptPromiseResolver*, sk_sp<SkImage>); |
StaticBitmapImage* bitmapImage() const { return (m_image) ? m_image.get() : nullptr; } |
- std::unique_ptr<uint8_t[]> copyBitmapData(AlphaDisposition alphaOp = DontPremultiplyAlpha); |
+ std::unique_ptr<uint8_t[]> copyBitmapData(AlphaDisposition alphaOp = DontPremultiplyAlpha, DataColorFormat format = RGBAColorType); |
unsigned long width() const; |
unsigned long height() const; |
IntSize size() const; |
@@ -82,11 +90,12 @@ private: |
ImageBitmap(HTMLImageElement*, const IntRect&, Document*, const ImageBitmapOptions&); |
ImageBitmap(HTMLVideoElement*, const IntRect&, Document*, const ImageBitmapOptions&); |
ImageBitmap(HTMLCanvasElement*, const IntRect&, const ImageBitmapOptions&); |
- ImageBitmap(ImageData*, const IntRect&, const ImageBitmapOptions&, const bool&, const bool&); |
+ ImageBitmap(ImageData*, const IntRect&, const ImageBitmapOptions&); |
ImageBitmap(ImageBitmap*, const IntRect&, const ImageBitmapOptions&); |
ImageBitmap(PassRefPtr<StaticBitmapImage>); |
ImageBitmap(PassRefPtr<StaticBitmapImage>, const IntRect&, const ImageBitmapOptions&); |
ImageBitmap(WebExternalTextureMailbox&); |
+ ImageBitmap(std::unique_ptr<uint8_t[]> data, uint32_t width, uint32_t height, bool isImageBitmapPremultiplied, bool isImageBitmapOriginClean); |
void parseOptions(const ImageBitmapOptions&, bool&, bool&); |