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

Unified Diff: third_party/WebKit/Source/core/html/ImageData.cpp

Issue 2707243006: [SharedArrayBuffer] Prevent SharedArrayBuffer being used in Web APIs (Closed)
Patch Set: Created 3 years, 10 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/html/ImageData.cpp
diff --git a/third_party/WebKit/Source/core/html/ImageData.cpp b/third_party/WebKit/Source/core/html/ImageData.cpp
index f2a9f3fab30b664efc1d527d2fbf85f76a0b059a..5e84dff62ad35fb8127906198c80d205323b7973 100644
--- a/third_party/WebKit/Source/core/html/ImageData.cpp
+++ b/third_party/WebKit/Source/core/html/ImageData.cpp
@@ -205,22 +205,30 @@ ImageData* ImageData::createForTest(const IntSize& size) {
return new ImageData(size, byteArray);
}
-ImageData* ImageData::create(const IntSize& size,
- DOMUint8ClampedArray* byteArray) {
+ImageData* ImageData::create(
+ const IntSize& size,
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared) {
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, nullptr))
+ return nullptr;
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared();
if (!ImageData::validateConstructorArguments(kParamSize | kParamData, &size,
- 0, 0, byteArray))
+ 0, 0, data))
return nullptr;
- return new ImageData(size, byteArray);
+ return new ImageData(size, data);
}
-ImageData* ImageData::create(const IntSize& size,
- DOMUint8ClampedArray* byteArray,
- const String& colorSpace) {
+ImageData* ImageData::create(
+ const IntSize& size,
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared,
+ const String& colorSpace) {
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, nullptr))
+ return nullptr;
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared();
if (!ImageData::validateConstructorArguments(
- kParamSize | kParamData | kParamColorSpace, &size, 0, 0, byteArray,
+ kParamSize | kParamData | kParamColorSpace, &size, 0, 0, data,
&colorSpace))
return nullptr;
- return new ImageData(size, byteArray, colorSpace);
+ return new ImageData(size, data, colorSpace);
}
ImageData* ImageData::create(unsigned width,
@@ -236,9 +244,13 @@ ImageData* ImageData::create(unsigned width,
return byteArray ? new ImageData(IntSize(width, height), byteArray) : nullptr;
}
-ImageData* ImageData::create(DOMUint8ClampedArray* data,
- unsigned width,
- ExceptionState& exceptionState) {
+ImageData* ImageData::create(
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared,
+ unsigned width,
+ ExceptionState& exceptionState) {
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState))
+ return nullptr;
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared();
if (!ImageData::validateConstructorArguments(kParamData | kParamWidth,
nullptr, width, 0, data, nullptr,
&exceptionState))
@@ -247,10 +259,14 @@ ImageData* ImageData::create(DOMUint8ClampedArray* data,
return new ImageData(IntSize(width, height), data);
}
-ImageData* ImageData::create(DOMUint8ClampedArray* data,
- unsigned width,
- unsigned height,
- ExceptionState& exceptionState) {
+ImageData* ImageData::create(
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared,
+ unsigned width,
+ unsigned height,
+ ExceptionState& exceptionState) {
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState))
+ return nullptr;
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared();
if (!ImageData::validateConstructorArguments(
kParamData | kParamWidth | kParamHeight, nullptr, width, height, data,
nullptr, &exceptionState))
@@ -275,10 +291,14 @@ ImageData* ImageData::createImageData(unsigned width,
: nullptr;
}
-ImageData* ImageData::createImageData(DOMUint8ClampedArray* data,
- unsigned width,
- String colorSpace,
- ExceptionState& exceptionState) {
+ImageData* ImageData::createImageData(
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared,
+ unsigned width,
+ String colorSpace,
+ ExceptionState& exceptionState) {
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState))
+ return nullptr;
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared();
if (!ImageData::validateConstructorArguments(
kParamData | kParamWidth | kParamColorSpace, nullptr, width, 0, data,
&colorSpace, &exceptionState))
@@ -287,11 +307,15 @@ ImageData* ImageData::createImageData(DOMUint8ClampedArray* data,
return new ImageData(IntSize(width, height), data, colorSpace);
}
-ImageData* ImageData::createImageData(DOMUint8ClampedArray* data,
- unsigned width,
- unsigned height,
- String colorSpace,
- ExceptionState& exceptionState) {
+ImageData* ImageData::createImageData(
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared,
+ unsigned width,
+ unsigned height,
+ String colorSpace,
+ ExceptionState& exceptionState) {
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState))
+ return nullptr;
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared();
if (!ImageData::validateConstructorArguments(
kParamData | kParamWidth | kParamHeight | kParamColorSpace, nullptr,
width, height, data, &colorSpace, &exceptionState))

Powered by Google App Engine
This is Rietveld 408576698