Changeset 266842 in webkit
- Timestamp:
- Sep 10, 2020 11:20:36 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/TestExpectations
r266830 r266842 322 322 323 323 # Test prints out sample rate, which appears to be hardware-specific. 324 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html [ Pass Failure ]325 324 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html [ Pass Failure ] 326 325 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse.html [ Pass Failure ] -
trunk/LayoutTests/imported/w3c/ChangeLog
r266817 r266842 1 2020-09-10 Chris Dumez <cdumez@apple.com> 2 3 Some WebAudio tests give different output on different machines 4 https://bugs.webkit.org/show_bug.cgi?id=216371 5 6 Reviewed by Alex Christensen. 7 8 Rebaseline a few tests that now have a different output. 9 10 * web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt: 11 * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt: 12 * web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt: 13 * web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt: 14 1 15 2020-09-10 Darin Adler <darin@apple.com> 2 16 -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt
r266289 r266842 7 7 PASS > [test-audiocontextoptions-latencyHint-basic] Test creating contexts with basic latencyHint types. 8 8 PASS context = new AudioContext() did not throw an exception. 9 PASS context.sampleRate (4 8000 Hz) is greater than 0.9 PASS context.sampleRate (44100 Hz) is greater than 0. 10 10 PASS default baseLatency is greater than or equal to 0. 11 11 PASS context = new AudioContext({'latencyHint': 'interactive'}) did not throw an exception. 12 PASS interactive baseLatency is equal to 0.002 6666666666666666.12 PASS interactive baseLatency is equal to 0.0029024943310657597. 13 13 PASS context = new AudioContext({'latencyHint': 'balanced'}) did not throw an exception. 14 PASS balanced baseLatency is greater than or equal to 0.002 6666666666666666.14 PASS balanced baseLatency is greater than or equal to 0.0029024943310657597. 15 15 PASS context = new AudioContext({'latencyHint': 'playback'}) did not throw an exception. 16 PASS playback baseLatency is greater than or equal to 0.002 6666666666666666.16 PASS playback baseLatency is greater than or equal to 0.0029024943310657597. 17 17 PASS < [test-audiocontextoptions-latencyHint-basic] All assertions passed. (total 9 assertions) 18 18 PASS > [test-audiocontextoptions-latencyHint-double] Test creating contexts with explicit latencyHint values. 19 19 PASS context = new AudioContext({'latencyHint': interactiveLatency/2}) did not throw an exception. 20 PASS double-constructor baseLatency small is less than or equal to 0.002 6666666666666666.20 PASS double-constructor baseLatency small is less than or equal to 0.0029024943310657597. 21 21 PASS context = new AudioContext({'latencyHint': validLatency}) did not throw an exception. 22 PASS double-constructor baseLatency inrange 1 is greater than or equal to 0.002 6666666666666666.23 PASS double-constructor baseLatency inrange 2 is less than or equal to 0.002 6666666666666666.22 PASS double-constructor baseLatency inrange 1 is greater than or equal to 0.0029024943310657597. 23 PASS double-constructor baseLatency inrange 2 is less than or equal to 0.0029024943310657597. 24 24 PASS creating two high latency contexts did not throw an exception. 25 PASS high latency context baseLatency is equal to 0.002 6666666666666666.26 PASS high latency context baseLatency is greater than or equal to 0.002 6666666666666666.25 PASS high latency context baseLatency is equal to 0.0029024943310657597. 26 PASS high latency context baseLatency is greater than or equal to 0.0029024943310657597. 27 27 PASS context = new AudioContext({'latencyHint': 'foo'}) threw TypeError: "Type error". 28 28 PASS context = new AudioContext('latencyHint') threw TypeError: "Type error". -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt
r266754 r266842 11 11 PASS StereoPannerNode: Output of k-rate StereoPannerNode is identical to the array [0,0.23952384293079376,0.4507266879081726,0.6086364388465881,0.6945818662643433,0.6984009146690369,0.6196421384811401,0.46761801838874817,0.26030319929122925,0.022210577502846718,-0.2185080647468567,-0.4333907663822174,-0.597029983997345,-0.6900772452354431,-0.701530933380127,-0.6300365328788757...]. 12 12 PASS StereoPannerNode: Output of a-rate StereoPannerNode is identical to the array [0,0.23952384293079376,0.4507266879081726,0.6086364388465881,0.6945818662643433,0.6984008550643921,0.6196421384811401,0.4676179885864258,0.26030316948890686,0.02221057564020157,-0.2185080349445343,-0.43339070677757263,-0.5970298647880554,-0.6900770664215088,-0.7015307545661926,-0.6300363540649414...]. 13 PASS StereoPannerNode: Difference between a-rate and k-rate StereoPannerNode is not constantly 0 (contains 795 8different values).13 PASS StereoPannerNode: Difference between a-rate and k-rate StereoPannerNode is not constantly 0 (contains 7957 different values). 14 14 PASS < [Test k-rate StereoPannerNode] All assertions passed. (total 8 assertions) 15 15 PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully. -
trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt
r266541 r266842 17 17 PASS lowpass: Number of non-finite values in expected phase response is equal to 0. 18 18 PASS lowpass: Actual and expected results contained only finite values is true. 19 PASS lowpass: Max error (-7 3.01781972755178 dB) of magnitude response at frequency 23952Hz is less than or equal to -73.01779999999998.20 PASS lowpass: Max error (0.00000 8043596428984033 deg) in phase response at frequency 1992Hz is less than or equal to 0.000460864332091429.19 PASS lowpass: Max error (-74.12964393692768 dB) of magnitude response at frequency 22027.94921875 Hz is less than or equal to -73.01779999999998. 20 PASS lowpass: Max error (0.00000925724159344549 deg) in phase response at frequency 1477.3499755859375 Hz is less than or equal to 0.000460864332091429. 21 21 PASS < [lowpass] All assertions passed. (total 7 assertions) 22 22 PASS > [highpass] Frequency response … … 26 26 PASS highpass: Number of non-finite values in expected phase response is equal to 0. 27 27 PASS highpass: Actual and expected results contained only finite values is true. 28 PASS highpass: Max error (-1 17.54613270502502 dB) of magnitude response at frequency 408Hz is less than or equal to -117.5461.29 PASS highpass: Max error (0.000006 969012786694054 deg) in phase response at frequency 912Hz is less than or equal to 0.00039930001700462205.28 PASS highpass: Max error (-121.35728191866156 dB) of magnitude response at frequency 418.95001220703125 Hz is less than or equal to -117.5461. 29 PASS highpass: Max error (0.000006632961778326638 deg) in phase response at frequency 132.3000030517578 Hz is less than or equal to 0.00039930001700462205. 30 30 PASS < [highpass] All assertions passed. (total 7 assertions) 31 31 PASS > [bandpass] Frequency response … … 35 35 PASS bandpass: Number of non-finite values in expected phase response is equal to 0. 36 36 PASS bandpass: Actual and expected results contained only finite values is true. 37 PASS bandpass: Max error (- 79.01394922508145 dB) of magnitude response at frequency 23952Hz is less than or equal to -79.01389999999999.38 PASS bandpass: Max error (0.000004 937042988127661 deg) in phase response at frequency 816Hz is less than or equal to 0.0002828749930340387.37 PASS bandpass: Max error (-80.14384658243245 dB) of magnitude response at frequency 22027.94921875 Hz is less than or equal to -79.01389999999999. 38 PASS bandpass: Max error (0.000004663540170181627 deg) in phase response at frequency 1455.300048828125 Hz is less than or equal to 0.0002828749930340387. 39 39 PASS < [bandpass] All assertions passed. (total 7 assertions) 40 40 PASS > [lowshelf] Frequency response … … 44 44 PASS lowshelf: Number of non-finite values in expected phase response is equal to 0. 45 45 PASS lowshelf: Actual and expected results contained only finite values is true. 46 PASS lowshelf: Max error (-125. 72006443816068 dB) of magnitude response at frequency 9048Hz is less than or equal to -120.4038.47 PASS lowshelf: Max error (0.000001 0998019550260546 deg) in phase response at frequency 1176Hz is less than or equal to 0.00023333133248907645.46 PASS lowshelf: Max error (-125.26371834201264 dB) of magnitude response at frequency 1653.75 Hz is less than or equal to -120.4038. 47 PASS lowshelf: Max error (0.0000013776021539855112 deg) in phase response at frequency 749.7000122070312 Hz is less than or equal to 0.00023333133248907645. 48 48 PASS < [lowshelf] All assertions passed. (total 7 assertions) 49 49 PASS > [highshelf] Frequency response … … 53 53 PASS highshelf: Number of non-finite values in expected phase response is equal to 0. 54 54 PASS highshelf: Actual and expected results contained only finite values is true. 55 PASS highshelf: Max error (-125. 38513197921183 dB) of magnitude response at frequency 864Hz is less than or equal to -119.99999999999999.56 PASS highshelf: Max error (0.000001 099801293470681 deg) in phase response at frequency 1176Hz is less than or equal to 0.00023333133248907645.55 PASS highshelf: Max error (-125.22346912810059 dB) of magnitude response at frequency 992.25 Hz is less than or equal to -119.99999999999999. 56 PASS highshelf: Max error (0.0000013776027010409165 deg) in phase response at frequency 749.7000122070312 Hz is less than or equal to 0.00023333133248907645. 57 57 PASS < [highshelf] All assertions passed. (total 7 assertions) 58 58 PASS > [peaking] Frequency response … … 62 62 PASS peaking: Number of non-finite values in expected phase response is equal to 0. 63 63 PASS peaking: Actual and expected results contained only finite values is true. 64 PASS peaking: Max error (-12 4.9664097542858 dB) of magnitude response at frequency 1992Hz is less than or equal to -119.11759999999998.65 PASS peaking: Max error (0.000002 2600132665057376 deg) in phase response at frequency 1080Hz is less than or equal to 0.0000037084120332047404.64 PASS peaking: Max error (-125.41901251646009 dB) of magnitude response at frequency 1411.199951171875 Hz is less than or equal to -119.11759999999998. 65 PASS peaking: Max error (0.000002668179955442939 deg) in phase response at frequency 992.25 Hz is less than or equal to 0.0000037084120332047404. 66 66 PASS < [peaking] All assertions passed. (total 7 assertions) 67 67 PASS > [notch] Frequency response … … 71 71 PASS notch: Number of non-finite values in expected phase response is equal to 0. 72 72 PASS notch: Actual and expected results contained only finite values is true. 73 PASS notch: Max error (- 96.65213672776751 dB) of magnitude response at frequency 1008Hz is less than or equal to -87.08079999999998.74 PASS notch: Max error (0.00000 66299355314361 deg) in phase response at frequency 1080Hz is less than or equal to 0.0003798710181717358.73 PASS notch: Max error (-87.0808201946387 dB) of magnitude response at frequency 992.25 Hz is less than or equal to -87.08079999999998. 74 PASS notch: Max error (0.000007963823283129813 deg) in phase response at frequency 992.25 Hz is less than or equal to 0.0003798710181717358. 75 75 PASS < [notch] All assertions passed. (total 7 assertions) 76 76 PASS > [allpass] Frequency response … … 80 80 PASS allpass: Number of non-finite values in expected phase response is equal to 0. 81 81 PASS allpass: Actual and expected results contained only finite values is true. 82 PASS allpass: Max error (-26 6.8735521058153 dB) of magnitude response at frequency 1056Hz is less than or equal to -265.35169999999994.83 PASS allpass: Max error (0.00001 3259871597205388 deg) in phase response at frequency 1080Hz is less than or equal to 0.0007597420363434716.82 PASS allpass: Max error (-265.35174872440564 dB) of magnitude response at frequency 1146.5999755859375 Hz is less than or equal to -265.35169999999994. 83 PASS allpass: Max error (0.000015927642291594136 deg) in phase response at frequency 992.25 Hz is less than or equal to 0.0007597420363434716. 84 84 PASS < [allpass] All assertions passed. (total 7 assertions) 85 85 PASS > [getFrequencyResponse] Test out-of-bounds frequency values -
trunk/Source/WebCore/ChangeLog
r266840 r266842 1 2020-09-10 Chris Dumez <cdumez@apple.com> 2 3 Some WebAudio tests give different output on different machines 4 https://bugs.webkit.org/show_bug.cgi?id=216371 5 6 Reviewed by Alex Christensen. 7 8 Add function to override the value returned by AudioDestination::hardwareSampleRate(). 9 10 * DerivedSources-output.xcfilelist: 11 * platform/audio/AudioDestination.h: 12 * platform/audio/cocoa/AudioDestinationCocoa.cpp: 13 (WebCore::hardwareSampleRateOverride): 14 (WebCore::AudioDestination::hardwareSampleRate): 15 (WebCore::AudioDestination::setHardwareSampleRateOverride): 16 * platform/audio/gstreamer/AudioDestinationGStreamer.cpp: 17 (WebCore::hardwareSampleRateOverride): 18 (WebCore::AudioDestination::hardwareSampleRate): 19 (WebCore::AudioDestination::setHardwareSampleRateOverride): 20 1 21 2020-09-10 Don Olmstead <don.olmstead@sony.com> 2 22 -
trunk/Source/WebCore/platform/audio/AudioDestination.h
r265393 r266842 57 57 virtual float sampleRate() const = 0; 58 58 static float hardwareSampleRate(); 59 WEBCORE_EXPORT static void setHardwareSampleRateOverride(Optional<float>); 59 60 60 61 virtual unsigned framesPerBuffer() const = 0; -
trunk/Source/WebCore/platform/audio/cocoa/AudioDestinationCocoa.cpp
r266559 r266842 38 38 const int kRenderBufferSize = 128; 39 39 40 static Optional<float>& hardwareSampleRateOverride() 41 { 42 static NeverDestroyed<Optional<float>> sampleRate; 43 return sampleRate.get(); 44 } 45 40 46 CreateAudioDestinationCocoaOverride AudioDestinationCocoa::createOverride = nullptr; 41 47 … … 61 67 float AudioDestination::hardwareSampleRate() 62 68 { 69 if (auto sampleRate = hardwareSampleRateOverride()) 70 return *sampleRate; 63 71 return AudioSession::sharedSession().sampleRate(); 72 } 73 74 void AudioDestination::setHardwareSampleRateOverride(Optional<float> sampleRate) 75 { 76 hardwareSampleRateOverride() = sampleRate; 64 77 } 65 78 … … 87 100 unsigned AudioDestinationCocoa::framesPerBuffer() const 88 101 { 89 return m_renderBus->length();102 return kRenderBufferSize; 90 103 } 91 104 -
trunk/Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp
r265393 r266842 40 40 const unsigned framesToPull = 128; 41 41 42 static Optional<float>& hardwareSampleRateOverride() 43 { 44 static NeverDestroyed<Optional<float>> sampleRate; 45 return sampleRate.get(); 46 } 47 42 48 gboolean messageCallback(GstBus*, GstMessage* message, AudioDestinationGStreamer* destination) 43 49 { … … 68 74 float AudioDestination::hardwareSampleRate() 69 75 { 76 if (auto sampleRate = hardwareSampleRateOverride()) 77 return *sampleRate; 70 78 return 44100; 79 } 80 81 void AudioDestination::setHardwareSampleRateOverride(Optional<float> sampleRate) 82 { 83 hardwareSampleRateOverride() = sampleRate; 71 84 } 72 85 -
trunk/Source/WebKit/ChangeLog
r266838 r266842 1 2020-09-10 Chris Dumez <cdumez@apple.com> 2 3 Some WebAudio tests give different output on different machines 4 https://bugs.webkit.org/show_bug.cgi?id=216371 5 6 Reviewed by Alex Christensen. 7 8 Add InjectedBundle SPI to set the hardware sample rate. 9 10 * WebProcess/InjectedBundle/API/c/WKBundle.cpp: 11 (WKBundleSetHardwareSampleRateOverride): 12 * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: 13 * WebProcess/InjectedBundle/InjectedBundle.cpp: 14 (WebKit::InjectedBundle::setHardwareSampleRateOverride): 15 * WebProcess/InjectedBundle/InjectedBundle.h: 16 1 17 2020-09-10 Sihui Liu <sihui_liu@apple.com> 2 18 -
trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp
r266214 r266842 190 190 } 191 191 192 void WKBundleSetHardwareSampleRateOverride(WKBundleRef bundleRef, float sample) 193 { 194 WebKit::toImpl(bundleRef)->setHardwareSampleRateOverride(sample ? makeOptional(sample) : WTF::nullopt); 195 } 196 192 197 void WKBundleSetAsynchronousSpellCheckingEnabled(WKBundleRef bundleRef, WKBundlePageGroupRef pageGroupRef, bool enabled) 193 198 { -
trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h
r265081 r266842 57 57 WK_EXPORT void WKBundleRemoveOriginAccessAllowListEntry(WKBundleRef bundle, WKStringRef, WKStringRef, WKStringRef, bool); 58 58 WK_EXPORT void WKBundleResetOriginAccessAllowLists(WKBundleRef bundle); 59 WK_EXPORT void WKBundleSetHardwareSampleRateOverride(WKBundleRef, float); 59 60 WK_EXPORT int WKBundleNumberOfPages(WKBundleRef bundle, WKBundleFrameRef frameRef, double pageWidthInPixels, double pageHeightInPixels); 60 61 WK_EXPORT int WKBundlePageNumberForElementById(WKBundleRef bundle, WKBundleFrameRef frameRef, WKStringRef idRef, double pageWidthInPixels, double pageHeightInPixels); -
trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp
r266360 r266842 56 56 #include <WebCore/ApplicationCache.h> 57 57 #include <WebCore/ApplicationCacheStorage.h> 58 #include <WebCore/AudioDestination.h> 58 59 #include <WebCore/CommonVM.h> 59 60 #include <WebCore/Document.h> … … 398 399 } 399 400 401 void InjectedBundle::setHardwareSampleRateOverride(Optional<float> sampleRate) 402 { 403 AudioDestination::setHardwareSampleRateOverride(sampleRate); 404 } 405 400 406 void InjectedBundle::setAsynchronousSpellCheckingEnabled(WebPageGroupProxy* pageGroup, bool enabled) 401 407 { -
trunk/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.h
r265081 r266842 111 111 void removeOriginAccessAllowListEntry(const String&, const String&, const String&, bool); 112 112 void resetOriginAccessAllowLists(); 113 void setHardwareSampleRateOverride(Optional<float>); 113 114 void setAsynchronousSpellCheckingEnabled(WebPageGroupProxy*, bool); 114 115 int numberOfPages(WebFrame*, double, double); -
trunk/Source/WebKitLegacy/mac/ChangeLog
r266736 r266842 1 2020-09-10 Chris Dumez <cdumez@apple.com> 2 3 Some WebAudio tests give different output on different machines 4 https://bugs.webkit.org/show_bug.cgi?id=216371 5 6 Reviewed by Alex Christensen. 7 8 Add WebView SPI to set the hardware sample rate. 9 10 * WebView/WebView.mm: 11 (+[WebView _setHardwareSampleRateOverride:]): 12 * WebView/WebViewPrivate.h: 13 1 14 2020-09-08 Megan Gardner <megan_gardner@apple.com> 2 15 -
trunk/Source/WebKitLegacy/mac/WebView/WebView.mm
r266360 r266842 131 131 #import <WebCore/AlternativeTextUIController.h> 132 132 #import <WebCore/ApplicationCacheStorage.h> 133 #import <WebCore/AudioDestination.h> 133 134 #import <WebCore/BackForwardCache.h> 134 135 #import <WebCore/BackForwardController.h> … … 2307 2308 } 2308 2309 2310 + (void)_setHardwareSampleRateOverride:(float)sampleRate 2311 { 2312 WebCore::AudioDestination::setHardwareSampleRateOverride(sampleRate ? makeOptional(sampleRate) : WTF::nullopt); 2313 } 2314 2309 2315 + (BOOL)canCloseAllWebViews 2310 2316 { -
trunk/Source/WebKitLegacy/mac/WebView/WebViewPrivate.h
r264423 r266842 555 555 + (void)_setAlwaysUsesComplexTextCodePath:(BOOL)f; 556 556 557 + (void)_setHardwareSampleRateOverride:(float)sampleRate; 558 557 559 #if !TARGET_OS_IPHONE 558 560 - (NSCachedURLResponse *)_cachedResponseForURL:(NSURL *)URL; -
trunk/Tools/ChangeLog
r266829 r266842 1 2020-09-10 Chris Dumez <cdumez@apple.com> 2 3 Some WebAudio tests give different output on different machines 4 https://bugs.webkit.org/show_bug.cgi?id=216371 5 6 Reviewed by Alex Christensen. 7 8 Update DRT / WRT to hardcode the hardware sample rate to 44100 so that Web Audio 9 test have the same output on different hardware. 10 11 * DumpRenderTree/mac/DumpRenderTree.mm: 12 (createWebViewAndOffscreenWindow): 13 * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: 14 (WTR::InjectedBundle::beginTesting): 15 1 16 2020-09-10 Kate Cheney <katherine_cheney@apple.com> 2 17 -
trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm
r266228 r266842 683 683 [WebView registerURLSchemeAsLocal:@"feedsearch"]; 684 684 685 // Don't use the actual hardware sample rate during testing or audio tests may have 686 // different output on different hardware. 687 [WebView _setHardwareSampleRateOverride:44100]; 688 685 689 [[webView preferences] _setMediaRecorderEnabled:YES]; 686 690 -
trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
r266228 r266842 598 598 WKBundleSetAllowStorageAccessFromFileURLS(m_bundle, m_pageGroup, false); 599 599 600 // Don't use the actual hardware sample rate during testing or audio tests may have 601 // different output on different hardware. 602 WKBundleSetHardwareSampleRateOverride(m_bundle, 44100); 603 600 604 #if PLATFORM(IOS_FAMILY) 601 605 WKBundlePageSetUseTestingViewportConfiguration(page()->page(), !booleanForKey(settings, "UseFlexibleViewport"));
Note: See TracChangeset
for help on using the changeset viewer.