Title: [267018] trunk
Revision
267018
Author
[email protected]
Date
2020-09-14 10:00:56 -0700 (Mon, 14 Sep 2020)

Log Message

Some WebAudio tests give different output on different machines
https://bugs.webkit.org/show_bug.cgi?id=216371
<rdar://problem/68653909>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing tests.

* web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt:
* web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:

Source/WebCore:

Hardcode default sample rate for AudioContext to 44100 for WPT tests instead
of using the hardware sample rate. This allows some tests to output consistent
results on different machines.

No new tests, unskipped existing test.

* Modules/webaudio/AudioContext.cpp:
(WebCore::defaultSampleRateForTesting):
(WebCore::AudioContext::setDefaultSampleRateForTesting):
(WebCore::AudioContext::create):
* Modules/webaudio/AudioContext.h:
(WebCore::AudioContext::create):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setDefaultAudioContextSampleRate):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

LayoutTests:

* TestExpectations:
Unskip test that should now have consistent results across machines.

* resources/testharnessreport.js:
Hardcode default sample rate for AudioContext to 44100 for WPT tests instead
of using the hardware sample rate.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (267017 => 267018)


--- trunk/LayoutTests/ChangeLog	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/LayoutTests/ChangeLog	2020-09-14 17:00:56 UTC (rev 267018)
@@ -1,3 +1,18 @@
+2020-09-14  Chris Dumez  <[email protected]>
+
+        Some WebAudio tests give different output on different machines
+        https://bugs.webkit.org/show_bug.cgi?id=216371
+        <rdar://problem/68653909>
+
+        Reviewed by Alex Christensen.
+
+        * TestExpectations:
+        Unskip test that should now have consistent results across machines.
+
+        * resources/testharnessreport.js:
+        Hardcode default sample rate for AudioContext to 44100 for WPT tests instead
+        of using the hardware sample rate.
+
 2020-09-14  Hector Lopez  <[email protected]>
 
         [ macOS ] webanimations/accelerated-animation-easing-update-after-pause.html is a flaky ImageOnlyFailure

Modified: trunk/LayoutTests/TestExpectations (267017 => 267018)


--- trunk/LayoutTests/TestExpectations	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/LayoutTests/TestExpectations	2020-09-14 17:00:56 UTC (rev 267018)
@@ -321,7 +321,6 @@
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/mediastreamaudiosourcenode-routing.html [ Skip ]
 
 # Test prints out sample rate, which appears to be hardware-specific.
-imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html [ Pass Failure ]
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html [ Pass Failure ]
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse.html [ Pass Failure ]
 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/no-dezippering.html [ Pass Failure ]

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (267017 => 267018)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-09-14 17:00:56 UTC (rev 267018)
@@ -1,3 +1,17 @@
+2020-09-14  Chris Dumez  <[email protected]>
+
+        Some WebAudio tests give different output on different machines
+        https://bugs.webkit.org/show_bug.cgi?id=216371
+        <rdar://problem/68653909>
+
+        Reviewed by Alex Christensen.
+
+        Rebaseline existing tests.
+
+        * web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt:
+        * web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:
+
 2020-09-12  Darin Adler  <[email protected]>
 
         REGRESSION (r266817): ASSERTION FAILED: injectedBundle.isTestRunning() on imported/w3c/web-platform-tests/service-workers/service-worker/svg-target-reftest.https.html

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt (267017 => 267018)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt	2020-09-14 17:00:56 UTC (rev 267018)
@@ -6,24 +6,24 @@
 PASS Audit report 
 PASS > [test-audiocontextoptions-latencyHint-basic] Test creating contexts with basic latencyHint types. 
 PASS   context = new AudioContext() did not throw an exception. 
-PASS   context.sampleRate (48000 Hz) is greater than 0. 
+PASS   context.sampleRate (44100 Hz) is greater than 0. 
 PASS   default baseLatency is greater than or equal to 0. 
 PASS   context = new AudioContext({'latencyHint': 'interactive'}) did not throw an exception. 
-PASS   interactive baseLatency is equal to 0.0026666666666666666. 
+PASS   interactive baseLatency is equal to 0.0029024943310657597. 
 PASS   context = new AudioContext({'latencyHint': 'balanced'}) did not throw an exception. 
-PASS   balanced baseLatency is greater than or equal to 0.0026666666666666666. 
+PASS   balanced baseLatency is greater than or equal to 0.0029024943310657597. 
 PASS   context = new AudioContext({'latencyHint': 'playback'}) did not throw an exception. 
-PASS   playback baseLatency is greater than or equal to 0.0026666666666666666. 
+PASS   playback baseLatency is greater than or equal to 0.0029024943310657597. 
 PASS < [test-audiocontextoptions-latencyHint-basic] All assertions passed. (total 9 assertions) 
 PASS > [test-audiocontextoptions-latencyHint-double] Test creating contexts with explicit latencyHint values. 
 PASS   context = new AudioContext({'latencyHint': interactiveLatency/2}) did not throw an exception. 
-PASS   double-constructor baseLatency small is less than or equal to 0.0026666666666666666. 
+PASS   double-constructor baseLatency small is less than or equal to 0.0029024943310657597. 
 PASS   context = new AudioContext({'latencyHint': validLatency}) did not throw an exception. 
-PASS   double-constructor baseLatency inrange 1 is greater than or equal to 0.0026666666666666666. 
-PASS   double-constructor baseLatency inrange 2 is less than or equal to 0.0026666666666666666. 
+PASS   double-constructor baseLatency inrange 1 is greater than or equal to 0.0029024943310657597. 
+PASS   double-constructor baseLatency inrange 2 is less than or equal to 0.0029024943310657597. 
 PASS   creating two high latency contexts did not throw an exception. 
-PASS   high latency context baseLatency is equal to 0.0026666666666666666. 
-PASS   high latency context baseLatency is greater than or equal to 0.0026666666666666666. 
+PASS   high latency context baseLatency is equal to 0.0029024943310657597. 
+PASS   high latency context baseLatency is greater than or equal to 0.0029024943310657597. 
 PASS   context = new AudioContext({'latencyHint': 'foo'}) threw TypeError: "Type error". 
 PASS   context = new AudioContext('latencyHint') threw TypeError: "Type error". 
 PASS < [test-audiocontextoptions-latencyHint-double] All assertions passed. (total 10 assertions) 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt (267017 => 267018)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt	2020-09-14 17:00:56 UTC (rev 267018)
@@ -16,8 +16,8 @@
 PASS   lowpass: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   lowpass: Number of non-finite values in expected phase response is equal to 0. 
 PASS   lowpass: Actual and expected results contained only finite values is true. 
-PASS   lowpass: Max error (-73.01781972755178 dB) of magnitude response at frequency 23952 Hz is less than or equal to -73.01779999999998. 
-PASS   lowpass: Max error (0.000008043596428984033 deg) in phase response at frequency 1992 Hz is less than or equal to 0.000460864332091429. 
+PASS   lowpass: Max error (-74.12964393692768 dB) of magnitude response at frequency 22027.94921875 Hz is less than or equal to -73.01779999999998. 
+PASS   lowpass: Max error (0.00000925724159344549 deg) in phase response at frequency 1477.3499755859375 Hz is less than or equal to 0.000460864332091429. 
 PASS < [lowpass] All assertions passed. (total 7 assertions) 
 PASS > [highpass] Frequency response 
 PASS   highpass: Number of non-finite values in magnitude response is equal to 0. 
@@ -25,8 +25,8 @@
 PASS   highpass: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   highpass: Number of non-finite values in expected phase response is equal to 0. 
 PASS   highpass: Actual and expected results contained only finite values is true. 
-PASS   highpass: Max error (-117.54613270502502 dB) of magnitude response at frequency 408 Hz is less than or equal to -117.5461. 
-PASS   highpass: Max error (0.000006969012786694054 deg) in phase response at frequency 912 Hz is less than or equal to 0.00039930001700462205. 
+PASS   highpass: Max error (-121.35728191866156 dB) of magnitude response at frequency 418.95001220703125 Hz is less than or equal to -117.5461. 
+PASS   highpass: Max error (0.000006632961778326638 deg) in phase response at frequency 132.3000030517578 Hz is less than or equal to 0.00039930001700462205. 
 PASS < [highpass] All assertions passed. (total 7 assertions) 
 PASS > [bandpass] Frequency response 
 PASS   bandpass: Number of non-finite values in magnitude response is equal to 0. 
@@ -34,8 +34,8 @@
 PASS   bandpass: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   bandpass: Number of non-finite values in expected phase response is equal to 0. 
 PASS   bandpass: Actual and expected results contained only finite values is true. 
-PASS   bandpass: Max error (-79.01394922508145 dB) of magnitude response at frequency 23952 Hz is less than or equal to -79.01389999999999. 
-PASS   bandpass: Max error (0.000004937042988127661 deg) in phase response at frequency 816 Hz is less than or equal to 0.0002828749930340387. 
+PASS   bandpass: Max error (-80.14384658243245 dB) of magnitude response at frequency 22027.94921875 Hz is less than or equal to -79.01389999999999. 
+PASS   bandpass: Max error (0.000004663540170181627 deg) in phase response at frequency 1455.300048828125 Hz is less than or equal to 0.0002828749930340387. 
 PASS < [bandpass] All assertions passed. (total 7 assertions) 
 PASS > [lowshelf] Frequency response 
 PASS   lowshelf: Number of non-finite values in magnitude response is equal to 0. 
@@ -43,8 +43,8 @@
 PASS   lowshelf: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   lowshelf: Number of non-finite values in expected phase response is equal to 0. 
 PASS   lowshelf: Actual and expected results contained only finite values is true. 
-PASS   lowshelf: Max error (-125.72006443816068 dB) of magnitude response at frequency 9048 Hz is less than or equal to -120.4038. 
-PASS   lowshelf: Max error (0.0000010998019550260546 deg) in phase response at frequency 1176 Hz is less than or equal to 0.00023333133248907645. 
+PASS   lowshelf: Max error (-125.26371834201264 dB) of magnitude response at frequency 1653.75 Hz is less than or equal to -120.4038. 
+PASS   lowshelf: Max error (0.0000013776021539855112 deg) in phase response at frequency 749.7000122070312 Hz is less than or equal to 0.00023333133248907645. 
 PASS < [lowshelf] All assertions passed. (total 7 assertions) 
 PASS > [highshelf] Frequency response 
 PASS   highshelf: Number of non-finite values in magnitude response is equal to 0. 
@@ -52,8 +52,8 @@
 PASS   highshelf: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   highshelf: Number of non-finite values in expected phase response is equal to 0. 
 PASS   highshelf: Actual and expected results contained only finite values is true. 
-PASS   highshelf: Max error (-125.38513197921183 dB) of magnitude response at frequency 864 Hz is less than or equal to -119.99999999999999. 
-PASS   highshelf: Max error (0.000001099801293470681 deg) in phase response at frequency 1176 Hz is less than or equal to 0.00023333133248907645. 
+PASS   highshelf: Max error (-125.22346912810059 dB) of magnitude response at frequency 992.25 Hz is less than or equal to -119.99999999999999. 
+PASS   highshelf: Max error (0.0000013776027010409165 deg) in phase response at frequency 749.7000122070312 Hz is less than or equal to 0.00023333133248907645. 
 PASS < [highshelf] All assertions passed. (total 7 assertions) 
 PASS > [peaking] Frequency response 
 PASS   peaking: Number of non-finite values in magnitude response is equal to 0. 
@@ -61,8 +61,8 @@
 PASS   peaking: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   peaking: Number of non-finite values in expected phase response is equal to 0. 
 PASS   peaking: Actual and expected results contained only finite values is true. 
-PASS   peaking: Max error (-124.9664097542858 dB) of magnitude response at frequency 1992 Hz is less than or equal to -119.11759999999998. 
-PASS   peaking: Max error (0.0000022600132665057376 deg) in phase response at frequency 1080 Hz is less than or equal to 0.0000037084120332047404. 
+PASS   peaking: Max error (-125.41901251646009 dB) of magnitude response at frequency 1411.199951171875 Hz is less than or equal to -119.11759999999998. 
+PASS   peaking: Max error (0.000002668179955442939 deg) in phase response at frequency 992.25 Hz is less than or equal to 0.0000037084120332047404. 
 PASS < [peaking] All assertions passed. (total 7 assertions) 
 PASS > [notch] Frequency response 
 PASS   notch: Number of non-finite values in magnitude response is equal to 0. 
@@ -70,8 +70,8 @@
 PASS   notch: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   notch: Number of non-finite values in expected phase response is equal to 0. 
 PASS   notch: Actual and expected results contained only finite values is true. 
-PASS   notch: Max error (-96.65213672776751 dB) of magnitude response at frequency 1008 Hz is less than or equal to -87.08079999999998. 
-PASS   notch: Max error (0.0000066299355314361 deg) in phase response at frequency 1080 Hz is less than or equal to 0.0003798710181717358. 
+PASS   notch: Max error (-87.0808201946387 dB) of magnitude response at frequency 992.25 Hz is less than or equal to -87.08079999999998. 
+PASS   notch: Max error (0.000007963823283129813 deg) in phase response at frequency 992.25 Hz is less than or equal to 0.0003798710181717358. 
 PASS < [notch] All assertions passed. (total 7 assertions) 
 PASS > [allpass] Frequency response 
 PASS   allpass: Number of non-finite values in magnitude response is equal to 0. 
@@ -79,8 +79,8 @@
 PASS   allpass: Number of non-finite values in the expected magnitude response is equal to 0. 
 PASS   allpass: Number of non-finite values in expected phase response is equal to 0. 
 PASS   allpass: Actual and expected results contained only finite values is true. 
-PASS   allpass: Max error (-266.8735521058153 dB) of magnitude response at frequency 1056 Hz is less than or equal to -265.35169999999994. 
-PASS   allpass: Max error (0.000013259871597205388 deg) in phase response at frequency 1080 Hz is less than or equal to 0.0007597420363434716. 
+PASS   allpass: Max error (-265.35174872440564 dB) of magnitude response at frequency 1146.5999755859375 Hz is less than or equal to -265.35169999999994. 
+PASS   allpass: Max error (0.000015927642291594136 deg) in phase response at frequency 992.25 Hz is less than or equal to 0.0007597420363434716. 
 PASS < [allpass] All assertions passed. (total 7 assertions) 
 PASS > [getFrequencyResponse] Test out-of-bounds frequency values 
 PASS   Magnitude response at frequency -1 is NaN. 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt (267017 => 267018)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt	2020-09-14 17:00:56 UTC (rev 267018)
@@ -3,7 +3,7 @@
 PASS Executing "test" 
 PASS Audit report 
 PASS > [test] Test convolver with real-time context 
-FAIL X SNR is not greater than or equal to 88.457. Got 76.82504506274849. assert_true: expected true got false
+FAIL X SNR is not greater than or equal to 88.457. Got 76.95278846153181. assert_true: expected true got false
 FAIL < [test] 1 out of 1 assertions were failed. assert_true: expected true got false
 FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
 

Modified: trunk/LayoutTests/resources/testharnessreport.js (267017 => 267018)


--- trunk/LayoutTests/resources/testharnessreport.js	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/LayoutTests/resources/testharnessreport.js	2020-09-14 17:00:56 UTC (rev 267018)
@@ -22,8 +22,8 @@
     if (testRunner.timeout && (location.port == 8800 || location.port == 9443))
         setTimeout(timeout, testRunner.timeout * 0.9);
 
-    // Make WebAudio map to webkitWebAudio for WPT tests
     if (location.port == 8800 || location.port == 9443) {
+        // Make WebAudio map to webkitWebAudio for WPT tests
         if (window.webkitAudioContext && !window.AudioContext)
             Object.defineProperty(self, "AudioContext", Object.getOwnPropertyDescriptor(self, "webkitAudioContext"));
         if (window.webkitOfflineAudioContext && !window.OfflineAudioContext)
@@ -30,8 +30,12 @@
             Object.defineProperty(self, "OfflineAudioContext", Object.getOwnPropertyDescriptor(self, "webkitOfflineAudioContext"));
         if (window.webkitAudioPannerNode && !window.PannerNode)
             Object.defineProperty(self, "PannerNode", Object.getOwnPropertyDescriptor(self, "webkitAudioPannerNode"));
-        if (self.internals)
+        if (self.internals) {
+            // Use 44100 sample rate by default instead of the hardware sample rate so that we get consistent results across machines.
+            internals.settings.setDefaultAudioContextSampleRate(44100);
+
             internals.settings.setLazyIframeLoadingEnabled(location.pathname.indexOf('iframe-loading-lazy') !== -1);
+        }
     }
 
     if (testRunner.setStatisticsShouldDowngradeReferrer) 

Modified: trunk/Source/WebCore/ChangeLog (267017 => 267018)


--- trunk/Source/WebCore/ChangeLog	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/Source/WebCore/ChangeLog	2020-09-14 17:00:56 UTC (rev 267018)
@@ -1,3 +1,29 @@
+2020-09-14  Chris Dumez  <[email protected]>
+
+        Some WebAudio tests give different output on different machines
+        https://bugs.webkit.org/show_bug.cgi?id=216371
+        <rdar://problem/68653909>
+
+        Reviewed by Alex Christensen.
+
+        Hardcode default sample rate for AudioContext to 44100 for WPT tests instead
+        of using the hardware sample rate. This allows some tests to output consistent
+        results on different machines.
+
+        No new tests, unskipped existing test.
+
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::defaultSampleRateForTesting):
+        (WebCore::AudioContext::setDefaultSampleRateForTesting):
+        (WebCore::AudioContext::create):
+        * Modules/webaudio/AudioContext.h:
+        (WebCore::AudioContext::create):
+        * testing/InternalSettings.cpp:
+        (WebCore::InternalSettings::Backup::restoreTo):
+        (WebCore::InternalSettings::setDefaultAudioContextSampleRate):
+        * testing/InternalSettings.h:
+        * testing/InternalSettings.idl:
+
 2020-09-14  Said Abou-Hallawa  <[email protected]>
 
         [CG] Cache the last status of the image encoded data

Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp (267017 => 267018)


--- trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp	2020-09-14 17:00:56 UTC (rev 267018)
@@ -58,8 +58,19 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(AudioContext);
 
-ExceptionOr<Ref<AudioContext>> AudioContext::create(Document& document, const AudioContextOptions& contextOptions)
+static Optional<float>& defaultSampleRateForTesting()
 {
+    static Optional<float> sampleRate;
+    return sampleRate;
+}
+
+void AudioContext::setDefaultSampleRateForTesting(Optional<float> sampleRate)
+{
+    defaultSampleRateForTesting() = sampleRate;
+}
+
+ExceptionOr<Ref<AudioContext>> AudioContext::create(Document& document, AudioContextOptions&& contextOptions)
+{
     ASSERT(isMainThread());
 #if OS(WINDOWS)
     if (s_hardwareContextCount >= maxHardwareContexts)
@@ -71,6 +82,9 @@
     
     // FIXME: Figure out where latencyHint should go.
 
+    if (!contextOptions.sampleRate && defaultSampleRateForTesting())
+        contextOptions.sampleRate = *defaultSampleRateForTesting();
+
     if (contextOptions.sampleRate.hasValue() && !isSupportedSampleRate(contextOptions.sampleRate.value()))
         return Exception { SyntaxError, "sampleRate is not in range"_s };
     

Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.h (267017 => 267018)


--- trunk/Source/WebCore/Modules/webaudio/AudioContext.h	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.h	2020-09-14 17:00:56 UTC (rev 267018)
@@ -39,7 +39,8 @@
     WTF_MAKE_ISO_ALLOCATED(AudioContext);
 public:
     // Create an AudioContext for rendering to the audio hardware.
-    static ExceptionOr<Ref<AudioContext>> create(Document&, const AudioContextOptions& = { });
+    static ExceptionOr<Ref<AudioContext>> create(Document&, AudioContextOptions&& = { });
+    WEBCORE_EXPORT static void setDefaultSampleRateForTesting(Optional<float>);
 
     void close(DOMPromiseDeferred<void>&&);
 

Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (267017 => 267018)


--- trunk/Source/WebCore/testing/InternalSettings.cpp	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp	2020-09-14 17:00:56 UTC (rev 267018)
@@ -51,6 +51,10 @@
 #include "SoupNetworkSession.h"
 #endif
 
+#if ENABLE(WEB_AUDIO)
+#include "AudioContext.h"
+#endif
+
 namespace WebCore {
 
 InternalSettings::Backup::Backup(Settings& settings)
@@ -172,6 +176,9 @@
     settings.setShouldDisplayCaptions(m_shouldDisplayCaptions);
     settings.setShouldDisplayTextDescriptions(m_shouldDisplayTextDescriptions);
 #endif
+#if ENABLE(WEB_AUDIO)
+    AudioContext::setDefaultSampleRateForTesting(WTF::nullopt);
+#endif
     settings.setDefaultVideoPosterURL(m_defaultVideoPosterURL);
     settings.setForcePendingWebGLPolicy(m_forcePendingWebGLPolicy);
     settings.setTimeWithoutMouseMovementBeforeHidingControls(m_originalTimeWithoutMouseMovementBeforeHidingControls);
@@ -487,6 +494,15 @@
     return { };
 }
 
+void InternalSettings::setDefaultAudioContextSampleRate(float sampleRate)
+{
+#if ENABLE(WEB_AUDIO)
+    AudioContext::setDefaultSampleRateForTesting(sampleRate);
+#else
+    UNUSED_PARAM(sampleRate);
+#endif
+}
+
 ExceptionOr<void> InternalSettings::setEditingBehavior(const String& editingBehavior)
 {
     if (!m_page)

Modified: trunk/Source/WebCore/testing/InternalSettings.h (267017 => 267018)


--- trunk/Source/WebCore/testing/InternalSettings.h	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/Source/WebCore/testing/InternalSettings.h	2020-09-14 17:00:56 UTC (rev 267018)
@@ -67,6 +67,7 @@
     ExceptionOr<void> setCanStartMedia(bool);
     ExceptionOr<void> setAllowsAirPlayForMediaPlayback(bool);
     ExceptionOr<void> setMediaCaptureRequiresSecureConnection(bool);
+    void setDefaultAudioContextSampleRate(float);
 
     ExceptionOr<void> setEditingBehavior(const String&);
     ExceptionOr<void> setPreferMIMETypeForImages(bool);

Modified: trunk/Source/WebCore/testing/InternalSettings.idl (267017 => 267018)


--- trunk/Source/WebCore/testing/InternalSettings.idl	2020-09-14 16:46:02 UTC (rev 267017)
+++ trunk/Source/WebCore/testing/InternalSettings.idl	2020-09-14 17:00:56 UTC (rev 267018)
@@ -60,6 +60,7 @@
     [MayThrowException] undefined setMediaTypeOverride(DOMString mediaTypeOverride);
     undefined setAllowsAirPlayForMediaPlayback(boolean available);
     [Conditional=MEDIA_STREAM, MayThrowException] undefined setMediaCaptureRequiresSecureConnection(boolean enable);
+    undefined setDefaultAudioContextSampleRate(float sampleRate);
 
     [MayThrowException] undefined setForcePendingWebGLPolicy(boolean forced);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to