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

Unified Diff: third_party/WebKit/Source/core/frame/ImageBitmap.h

Issue 2039983002: Change code path for structured cloning ImageBitmap (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more comments Created 4 years, 6 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: 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&);

Powered by Google App Engine
This is Rietveld 408576698