| Index: third_party/WebKit/Source/core/html/ImageData.h
|
| diff --git a/third_party/WebKit/Source/core/html/ImageData.h b/third_party/WebKit/Source/core/html/ImageData.h
|
| index 246a4cf85b0998060150d1977261f9bc0692c9b4..134ddd3f96fcb74c9c49043a0d605be3d707b9df 100644
|
| --- a/third_party/WebKit/Source/core/html/ImageData.h
|
| +++ b/third_party/WebKit/Source/core/html/ImageData.h
|
| @@ -33,6 +33,7 @@
|
| #include "core/CoreExport.h"
|
| #include "core/dom/DOMArrayBufferView.h"
|
| #include "core/dom/DOMTypedArray.h"
|
| +#include "core/dom/MaybeShared.h"
|
| #include "core/imagebitmap/ImageBitmapSource.h"
|
| #include "platform/geometry/IntRect.h"
|
| #include "platform/geometry/IntSize.h"
|
| @@ -77,15 +78,16 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
|
|
|
| public:
|
| static ImageData* create(const IntSize&);
|
| - static ImageData* create(const IntSize&, DOMUint8ClampedArray*);
|
| static ImageData* create(const IntSize&,
|
| - DOMUint8ClampedArray*,
|
| + const MaybeShared<DOMUint8ClampedArray>&);
|
| + static ImageData* create(const IntSize&,
|
| + const MaybeShared<DOMUint8ClampedArray>&,
|
| const String&);
|
| static ImageData* create(unsigned width, unsigned height, ExceptionState&);
|
| - static ImageData* create(DOMUint8ClampedArray*,
|
| + static ImageData* create(const MaybeShared<DOMUint8ClampedArray>&,
|
| unsigned width,
|
| ExceptionState&);
|
| - static ImageData* create(DOMUint8ClampedArray*,
|
| + static ImageData* create(const MaybeShared<DOMUint8ClampedArray>&,
|
| unsigned width,
|
| unsigned height,
|
| ExceptionState&);
|
| @@ -96,11 +98,11 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
|
| unsigned height,
|
| String colorSpace,
|
| ExceptionState&);
|
| - ImageData* createImageData(DOMUint8ClampedArray*,
|
| + ImageData* createImageData(const MaybeShared<DOMUint8ClampedArray>&,
|
| unsigned width,
|
| String colorSpace,
|
| ExceptionState&);
|
| - ImageData* createImageData(DOMUint8ClampedArray*,
|
| + ImageData* createImageData(const MaybeShared<DOMUint8ClampedArray>&,
|
| unsigned width,
|
| unsigned height,
|
| String colorSpace,
|
| @@ -146,6 +148,19 @@ class CORE_EXPORT ImageData final : public GarbageCollectedFinalized<ImageData>,
|
| ExceptionState* = nullptr,
|
| ImageDataType = kUint8ClampedImageData);
|
|
|
| + template <typename T>
|
| + static bool validateDataArgumentIsNotShared(const MaybeShared<T>& maybeShared,
|
| + ExceptionState* exceptionState) {
|
| + if (maybeShared.isShared()) {
|
| + if (exceptionState) {
|
| + exceptionState->throwTypeError(
|
| + "The data is backed by a SharedArrayBuffer.");
|
| + }
|
| + return false;
|
| + }
|
| + return true;
|
| + }
|
| +
|
| private:
|
| ImageData(const IntSize&,
|
| DOMUint8ClampedArray*,
|
|
|