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

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

Issue 2035113002: Implement ImageBitmapOptions resize (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 5 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 bb5aa15194715dee7716fe4fbb397b23429b68e9..7ba09e4121cdee1559ca991ca815684928647ec5 100644
--- a/third_party/WebKit/Source/core/frame/ImageBitmap.h
+++ b/third_party/WebKit/Source/core/frame/ImageBitmap.h
@@ -38,19 +38,21 @@ enum DataColorFormat {
class CORE_EXPORT ImageBitmap final : public GarbageCollectedFinalized<ImageBitmap>, public ScriptWrappable, public CanvasImageSource, public ImageBitmapSource {
DEFINE_WRAPPERTYPEINFO();
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());
- static ImageBitmap* create(ImageBitmap*, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
+ static ImageBitmap* create(HTMLImageElement*, Optional<IntRect>, Document*, const ImageBitmapOptions& = ImageBitmapOptions());
+ static ImageBitmap* create(HTMLVideoElement*, Optional<IntRect>, Document*, const ImageBitmapOptions& = ImageBitmapOptions());
+ static ImageBitmap* create(HTMLCanvasElement*, Optional<IntRect>, const ImageBitmapOptions& = ImageBitmapOptions());
+ static ImageBitmap* create(ImageData*, Optional<IntRect>, const ImageBitmapOptions& = ImageBitmapOptions());
+ static ImageBitmap* create(ImageBitmap*, Optional<IntRect>, const ImageBitmapOptions& = ImageBitmapOptions());
static ImageBitmap* create(PassRefPtr<StaticBitmapImage>);
- static ImageBitmap* create(PassRefPtr<StaticBitmapImage>, const IntRect&, const ImageBitmapOptions& = ImageBitmapOptions());
+ static ImageBitmap* create(PassRefPtr<StaticBitmapImage>, Optional<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>);
+ static bool isResizeOptionValid(const ImageBitmapOptions&, ExceptionState&);
+ static bool isSourceSizeValid(int sourceWidth, int sourceHeight, ExceptionState&);
// Type and helper function required by CallbackPromiseAdapter:
using WebType = sk_sp<SkImage>;
@@ -82,23 +84,21 @@ public:
// ImageBitmapSource implementation
IntSize bitmapSourceSize() const override { return size(); }
- ScriptPromise createImageBitmap(ScriptState*, EventTarget&, int sx, int sy, int sw, int sh, const ImageBitmapOptions&, ExceptionState&) override;
+ ScriptPromise createImageBitmap(ScriptState*, EventTarget&, Optional<IntRect>, const ImageBitmapOptions&, ExceptionState&) override;
DECLARE_VIRTUAL_TRACE();
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&);
- ImageBitmap(ImageBitmap*, const IntRect&, const ImageBitmapOptions&);
+ ImageBitmap(HTMLImageElement*, Optional<IntRect>, Document*, const ImageBitmapOptions&);
+ ImageBitmap(HTMLVideoElement*, Optional<IntRect>, Document*, const ImageBitmapOptions&);
+ ImageBitmap(HTMLCanvasElement*, Optional<IntRect>, const ImageBitmapOptions&);
+ ImageBitmap(ImageData*, Optional<IntRect>, const ImageBitmapOptions&);
+ ImageBitmap(ImageBitmap*, Optional<IntRect>, const ImageBitmapOptions&);
ImageBitmap(PassRefPtr<StaticBitmapImage>);
- ImageBitmap(PassRefPtr<StaticBitmapImage>, const IntRect&, const ImageBitmapOptions&);
+ ImageBitmap(PassRefPtr<StaticBitmapImage>, Optional<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&);
-
RefPtr<StaticBitmapImage> m_image;
bool m_isNeutered = false;
};

Powered by Google App Engine
This is Rietveld 408576698