summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chromium/third_party/blink/renderer/modules/webaudio/media_element_audio_source_node.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/modules/webaudio/media_element_audio_source_node.cc b/chromium/third_party/blink/renderer/modules/webaudio/media_element_audio_source_node.cc
index 7b7fba6f9f1..a317b839799 100644
--- a/chromium/third_party/blink/renderer/modules/webaudio/media_element_audio_source_node.cc
+++ b/chromium/third_party/blink/renderer/modules/webaudio/media_element_audio_source_node.cc
@@ -106,6 +106,13 @@ void MediaElementAudioSourceHandler::SetFormat(uint32_t number_of_channels,
PrintCorsMessage(MediaElement()->currentSrc().GetString());
}
+ {
+ // Make sure |is_origin_tainted_| matches |is_tainted|. But need to
+ // synchronize with process() to set this.
+ MediaElementAudioSourceHandlerLocker locker(*this);
+ is_origin_tainted_ = is_tainted;
+ }
+
if (number_of_channels != source_number_of_channels_ ||
source_sample_rate != source_sample_rate_) {
if (!number_of_channels ||
@@ -118,16 +125,13 @@ void MediaElementAudioSourceHandler::SetFormat(uint32_t number_of_channels,
MediaElementAudioSourceHandlerLocker locker(*this);
source_number_of_channels_ = 0;
source_sample_rate_ = 0;
- is_origin_tainted_ = is_tainted;
return;
}
// Synchronize with process() to protect |source_number_of_channels_|,
- // |source_sample_rate_|, |multi_channel_resampler_|. and
- // |is_origin_tainted_|.
+ // |source_sample_rate_|, |multi_channel_resampler_|.
MediaElementAudioSourceHandlerLocker locker(*this);
- is_origin_tainted_ = is_tainted;
source_number_of_channels_ = number_of_channels;
source_sample_rate_ = source_sample_rate;