Skip to content
  • crogers@google.com's avatar
    Implement OfflineAudioContext constructor · 24fec26d
    crogers@google.com authored
    https://bugs.webkit.org/show_bug.cgi?id=104188
    
    Reviewed by Kentaro Hara.
    
    Source/WebCore:
    
    The Web Audio layout tests have relied on an undocumented way (in the specification) to render
    audio faster than realtime using an OfflineAudioContext.  We want to expose a proper OfflineAudioContext
    object and constructor instead of piggybacking off of the normal AudioContext.
    
    * CMakeLists.txt:
    * DerivedSources.make:
    * DerivedSources.pri:
    * GNUmakefile.list.am:
    * Modules/webaudio/AudioContext.cpp:
    (WebCore::AudioContext::isSampleRateRangeGood):
    * Modules/webaudio/AudioContext.h:
    (AudioContext):
    * Modules/webaudio/DOMWindowWebAudio.idl:
    * Modules/webaudio/OfflineAudioContext.cpp: Added.
    (WebCore):
    (WebCore::OfflineAudioContext::create):
    (WebCore::OfflineAudioContext::OfflineAudioContext):
    (WebCore::OfflineAudioContext::~OfflineAudioContext):
    * Modules/webaudio/OfflineAudioContext.h: Added.
    (WebCore):
    (OfflineAudioContext):
    * Modules/webaudio/OfflineAudioContext.idl: Added.
    * WebCore.gypi:
    * WebCore.xcodeproj/project.pbxproj:
    * bindings/generic/RuntimeEnabledFeatures.h:
    (WebCore::RuntimeEnabledFeatures::webkitOfflineAudioContextEnabled):
    * bindings/js/JSAudioContextCustom.cpp:
    (WebCore::JSAudioContextConstructor::constructJSAudioContext):
    * bindings/v8/custom/V8AudioContextCustom.cpp:
    (WebCore::V8AudioContext::constructorCallbackCustom):
    
    LayoutTests:
    
    Switch Web Audio layout tests to use OfflineAudioContext constructor.
    
    * inspector-protocol/nmi-webaudio.html:
    * inspector-protocol/resources/audio-context.html:
    * webaudio/audiobuffersource-loop-comprehensive.html:
    * webaudio/audiobuffersource-loop-points.html:
    * webaudio/audiobuffersource-multi-channels.html:
    * webaudio/audiobuffersource-playbackState.html:
    * webaudio/audiobuffersource-playbackrate.html:
    * webaudio/audiobuffersource-start.html:
    * webaudio/audiobuffersource.html:
    * webaudio/audiochannelmerger-stereo.html:
    * webaudio/audiochannelsplitter.html:
    * webaudio/audionode-connect-order.html:
    * webaudio/audionode-expected.txt:
    * webaudio/audioparam-connect-audioratesignal.html:
    * webaudio/audioparam-summingjunction.html:
    * webaudio/automatic-pull-node.html:
    * webaudio/biquad-allpass.html:
    * webaudio/biquad-bandpass.html:
    * webaudio/biquad-highpass.html:
    * webaudio/biquad-highshelf.html:
    * webaudio/biquad-lowpass.html:
    * webaudio/biquad-lowshelf.html:
    * webaudio/biquad-notch.html:
    * webaudio/biquad-peaking.html:
    * webaudio/convolution-mono-mono.html:
    * webaudio/delaynode-max-default-delay.html:
    * webaudio/delaynode-max-nondefault-delay.html:
    * webaudio/delaynode-maxdelay.html:
    * webaudio/delaynode-maxdelaylimit.html:
    * webaudio/delaynode-scheduling.html:
    * webaudio/delaynode.html:
    * webaudio/distance-exponential.html:
    * webaudio/distance-inverse.html:
    * webaudio/distance-linear.html:
    * webaudio/gain.html:
    * webaudio/javascriptaudionode-zero-input-channels.html:
    * webaudio/javascriptaudionode.html:
    * webaudio/mediaelementaudiosourcenode-gc.html:
    * webaudio/mixing.html:
    * webaudio/note-grain-on-play.html:
    * webaudio/note-grain-on-timing.html:
    * webaudio/oscillator-basic.html:
    * webaudio/panner-equalpower-stereo.html:
    * webaudio/panner-equalpower.html:
    * webaudio/realtimeanalyser-fft-sizing.html:
    * webaudio/resources/audio-codec-test.js:
    (runDecodingTest):
    * webaudio/resources/audioparam-testing.js:
    (createAudioGraphAndTest):
    * webaudio/resources/javascriptaudionode-testing.js:
    (runJSNodeTest):
    * webaudio/sample-accurate-scheduling.html:
    * webaudio/stereo2mono-down-mixing.html:
    * webaudio/up-mixing-mono-51.html:
    * webaudio/up-mixing-mono-stereo.html:
    * webaudio/up-mixing-stereo-51.html:
    * webaudio/waveshaper.html:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137516 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    24fec26d