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

Unified Diff: third_party/WebKit/Source/modules/webaudio/IIRFilterNode.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/modules/webaudio/IIRFilterNode.cpp
diff --git a/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp b/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp
index d8e5c2ed20de0550fcad33431d9c66c1cbb30e42..9aa79ff3d28e4348b354a7a73192aaac7737560a 100644
--- a/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp
+++ b/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp
@@ -149,28 +149,40 @@ IIRProcessor* IIRFilterNode::iirProcessor() const {
static_cast<AudioBasicProcessorHandler&>(handler()).processor());
}
-void IIRFilterNode::getFrequencyResponse(const DOMFloat32Array* frequencyHz,
- DOMFloat32Array* magResponse,
- DOMFloat32Array* phaseResponse,
- ExceptionState& exceptionState) {
- if (!frequencyHz) {
+void IIRFilterNode::getFrequencyResponse(
+ const MaybeShared<const DOMFloat32Array>& maybeSharedFrequencyHz,
+ const MaybeShared<DOMFloat32Array>& maybeSharedMagResponse,
+ const MaybeShared<DOMFloat32Array>& maybeSharedPhaseResponse,
+ ExceptionState& exceptionState) {
+ if (!maybeSharedFrequencyHz) {
exceptionState.throwDOMException(NotSupportedError,
"frequencyHz array cannot be null");
return;
}
- if (!magResponse) {
+ if (!maybeSharedMagResponse) {
exceptionState.throwDOMException(NotSupportedError,
"magResponse array cannot be null");
return;
}
- if (!phaseResponse) {
+ if (!maybeSharedPhaseResponse) {
exceptionState.throwDOMException(NotSupportedError,
"phaseResponse array cannot be null");
return;
}
+ if (maybeSharedFrequencyHz.isShared() || maybeSharedMagResponse.isShared() ||
+ maybeSharedPhaseResponse.isShared()) {
+ exceptionState.throwTypeError(
+ "arrays cannot be backed by SharedArrayBuffer");
+ return;
+ }
+
+ const DOMFloat32Array* frequencyHz = maybeSharedFrequencyHz.viewNotShared();
+ DOMFloat32Array* magResponse = maybeSharedMagResponse.viewNotShared();
+ DOMFloat32Array* phaseResponse = maybeSharedPhaseResponse.viewNotShared();
+
unsigned frequencyHzLength = frequencyHz->length();
if (magResponse->length() < frequencyHzLength) {

Powered by Google App Engine
This is Rietveld 408576698