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

Unified Diff: third_party/WebKit/Source/core/dom/DOMMatrix.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/dom/DOMMatrix.cpp
diff --git a/third_party/WebKit/Source/core/dom/DOMMatrix.cpp b/third_party/WebKit/Source/core/dom/DOMMatrix.cpp
index 59c6ae4412f04aa6c0f8c2c0e4fb043a1bee1217..96e8451e42629e740f87e0ae0a1bba4ba0926d96 100644
--- a/third_party/WebKit/Source/core/dom/DOMMatrix.cpp
+++ b/third_party/WebKit/Source/core/dom/DOMMatrix.cpp
@@ -39,8 +39,15 @@ DOMMatrix* DOMMatrix::create(Vector<double> sequence,
return new DOMMatrix(sequence, sequence.size());
}
-DOMMatrix* DOMMatrix::fromFloat32Array(DOMFloat32Array* float32Array,
- ExceptionState& exceptionState) {
+DOMMatrix* DOMMatrix::fromFloat32Array(
+ const MaybeShared<DOMFloat32Array>& maybeShared,
+ ExceptionState& exceptionState) {
+ if (maybeShared.isShared()) {
+ exceptionState.throwTypeError(
+ "The Float32Array must not be backed by a SharedArrayBuffer.");
+ return nullptr;
+ }
+ DOMFloat32Array* float32Array = maybeShared.viewNotShared();
if (float32Array->length() != 6 && float32Array->length() != 16) {
exceptionState.throwTypeError(
"The sequence must contain 6 elements for a 2D matrix or 16 elements "
@@ -50,8 +57,15 @@ DOMMatrix* DOMMatrix::fromFloat32Array(DOMFloat32Array* float32Array,
return new DOMMatrix(float32Array->data(), float32Array->length());
}
-DOMMatrix* DOMMatrix::fromFloat64Array(DOMFloat64Array* float64Array,
- ExceptionState& exceptionState) {
+DOMMatrix* DOMMatrix::fromFloat64Array(
+ const MaybeShared<DOMFloat64Array>& maybeShared,
+ ExceptionState& exceptionState) {
+ if (maybeShared.isShared()) {
+ exceptionState.throwTypeError(
+ "The Float64Array must not be backed by a SharedArrayBuffer.");
+ return nullptr;
+ }
+ DOMFloat64Array* float64Array = maybeShared.viewNotShared();
if (float64Array->length() != 6 && float64Array->length() != 16) {
exceptionState.throwTypeError(
"The sequence must contain 6 elements for a 2D matrix or 16 elements "

Powered by Google App Engine
This is Rietveld 408576698