<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[277530] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/277530">277530</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2021-05-14 21:18:38 -0700 (Fri, 14 May 2021)</dd>
</dl>

<h3>Log Message</h3>
<pre>Drop legacy / prefixed WebAudio implementation
https://bugs.webkit.org/show_bug.cgi?id=225832

Reviewed by Darin Adler.

Source/WebCore:

Drop legacy / prefixed WebAudio implementation now that it is no longer
present in shipping and we have received any reports of issues.

This drops all the legacy code but she should be able to clean up the
code further in follow-ups. In particular, I believe some code can
now be moved from BaseAudioContext to OfflineAudioContext.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::~AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::totalPitchRate):
* Modules/webaudio/AudioBufferSourceNode.h:
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::create):
(WebCore::AudioContext::AudioContext):
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioListener.h:
* Modules/webaudio/AudioListener.idl:
* Modules/webaudio/AudioNode.cpp:
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/AudioNode.idl:
* Modules/webaudio/AudioParam.h:
* Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::BaseAudioContext):
* Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::isOfflineContext const):
(WebCore::BaseAudioContext::BaseAudioContext):
* Modules/webaudio/DynamicsCompressorNode.cpp:
* Modules/webaudio/DynamicsCompressorNode.h:
* Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::OfflineAudioContext):
* Modules/webaudio/OscillatorNode.h:
* Modules/webaudio/OscillatorNode.idl:
* Modules/webaudio/WebKitAudioBufferSourceNode.h: Removed.
* Modules/webaudio/WebKitAudioBufferSourceNode.idl: Removed.
* Modules/webaudio/WebKitAudioContext.cpp: Removed.
* Modules/webaudio/WebKitAudioContext.h: Removed.
* Modules/webaudio/WebKitAudioContext.idl: Removed.
* Modules/webaudio/WebKitAudioListener.h: Removed.
* Modules/webaudio/WebKitAudioListener.idl: Removed.
* Modules/webaudio/WebKitAudioPannerNode.cpp: Removed.
* Modules/webaudio/WebKitAudioPannerNode.h: Removed.
* Modules/webaudio/WebKitAudioPannerNode.idl: Removed.
* Modules/webaudio/WebKitDynamicsCompressorNode.h: Removed.
* Modules/webaudio/WebKitDynamicsCompressorNode.idl: Removed.
* Modules/webaudio/WebKitOfflineAudioContext.cpp: Removed.
* Modules/webaudio/WebKitOfflineAudioContext.h: Removed.
* Modules/webaudio/WebKitOfflineAudioContext.idl: Removed.
* Modules/webaudio/WebKitOscillatorNode.h: Removed.
* Modules/webaudio/WebKitOscillatorNode.idl: Removed.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* testing/Internals.cpp:
(WebCore::Internals::setAudioContextRestrictions):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKitLegacy/win:

Stop explicitly disabled with prefixed WebAudio implementation given that
it no longer exists.

* WebView.cpp:
(WebView::notifyPreferencesChanged):

Source/WTF:

Drop preference for prefixed WebAudio, which was disabled everywhere.

* Scripts/Preferences/WebPreferencesInternal.yaml:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFScriptsPreferencesWebPreferencesInternalyaml">trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodecpp">trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodeh">trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodeidl">trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioContexth">trunk/Source/WebCore/Modules/webaudio/AudioContext.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioListenerh">trunk/Source/WebCore/Modules/webaudio/AudioListener.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioListeneridl">trunk/Source/WebCore/Modules/webaudio/AudioListener.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioNodecpp">trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioNodeh">trunk/Source/WebCore/Modules/webaudio/AudioNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioNodeidl">trunk/Source/WebCore/Modules/webaudio/AudioNode.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioAudioParamh">trunk/Source/WebCore/Modules/webaudio/AudioParam.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioBaseAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioBaseAudioContexth">trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioDynamicsCompressorNodecpp">trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioDynamicsCompressorNodeh">trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioOfflineAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioOscillatorNodeh">trunk/Source/WebCore/Modules/webaudio/OscillatorNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioOscillatorNodeidl">trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketDeflateFramercpp">trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebsocketsWebSocketDeflateFramerh">trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.h</a></li>
<li><a href="#trunkSourceWebCoreSourcestxt">trunk/Source/WebCore/Sources.txt</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsh">trunk/Source/WebCore/testing/Internals.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalsidl">trunk/Source/WebCore/testing/Internals.idl</a></li>
<li><a href="#trunkSourceWebKitLegacywinChangeLog">trunk/Source/WebKitLegacy/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitLegacywinWebViewcpp">trunk/Source/WebKitLegacy/win/WebView.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioBufferSourceNodeh">trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioBufferSourceNodeidl">trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioContexth">trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioContextidl">trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioListenerh">trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioListeneridl">trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioPannerNodecpp">trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioPannerNodeh">trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitAudioPannerNodeidl">trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitDynamicsCompressorNodeh">trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitDynamicsCompressorNodeidl">trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitOfflineAudioContextcpp">trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitOfflineAudioContexth">trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitOfflineAudioContextidl">trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitOscillatorNodeh">trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.h</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioWebKitOscillatorNodeidl">trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog       2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WTF/ChangeLog  2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,5 +1,16 @@
</span><span class="cx"> 2021-05-14  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><ins>+        Drop legacy / prefixed WebAudio implementation
+        https://bugs.webkit.org/show_bug.cgi?id=225832
+
+        Reviewed by Darin Adler.
+
+        Drop preference for prefixed WebAudio, which was disabled everywhere.
+
+        * Scripts/Preferences/WebPreferencesInternal.yaml:
+
+2021-05-14  Chris Dumez  <cdumez@apple.com>
+
</ins><span class="cx">         Port WTF::FileSystem::realPath() to std::filesystem
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=225828
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWTFScriptsPreferencesWebPreferencesInternalyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -583,19 +583,6 @@
</span><span class="cx">     WebCore:
</span><span class="cx">       default: true
</span><span class="cx"> 
</span><del>-PrefixedWebAudioEnabled:
-  type: bool
-  humanReadableName: "Prefixed WebAudio API"
-  humanReadableDescription: "Prefixed WebAudio API"
-  condition: ENABLE(WEB_AUDIO)
-  defaultValue:
-    WebKitLegacy:
-      default: false
-    WebKit:
-      default: false
-    WebCore:
-      default: false
-
</del><span class="cx"> ResourceLoadSchedulingEnabled:
</span><span class="cx">   type: bool
</span><span class="cx">   humanReadableName: "Resource Load Scheduling"
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt      2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/CMakeLists.txt 2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -571,13 +571,6 @@
</span><span class="cx">     Modules/webaudio/ScriptProcessorNode.idl
</span><span class="cx">     Modules/webaudio/WaveShaperNode.idl
</span><span class="cx">     Modules/webaudio/WaveShaperOptions.idl
</span><del>-    Modules/webaudio/WebKitAudioBufferSourceNode.idl
-    Modules/webaudio/WebKitAudioContext.idl
-    Modules/webaudio/WebKitAudioListener.idl
-    Modules/webaudio/WebKitAudioPannerNode.idl
-    Modules/webaudio/WebKitDynamicsCompressorNode.idl
-    Modules/webaudio/WebKitOfflineAudioContext.idl
-    Modules/webaudio/WebKitOscillatorNode.idl
</del><span class="cx"> 
</span><span class="cx">     Modules/webauthn/AttestationConveyancePreference.idl
</span><span class="cx">     Modules/webauthn/AuthenticationExtensionsClientInputs.idl
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/ChangeLog      2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,3 +1,69 @@
</span><ins>+2021-05-14  Chris Dumez  <cdumez@apple.com>
+
+        Drop legacy / prefixed WebAudio implementation
+        https://bugs.webkit.org/show_bug.cgi?id=225832
+
+        Reviewed by Darin Adler.
+
+        Drop legacy / prefixed WebAudio implementation now that it is no longer
+        present in shipping and we have received any reports of issues.
+
+        This drops all the legacy code but she should be able to clean up the
+        code further in follow-ups. In particular, I believe some code can
+        now be moved from BaseAudioContext to OfflineAudioContext.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Modules/webaudio/AudioBufferSourceNode.cpp:
+        (WebCore::AudioBufferSourceNode::~AudioBufferSourceNode):
+        (WebCore::AudioBufferSourceNode::totalPitchRate):
+        * Modules/webaudio/AudioBufferSourceNode.h:
+        * Modules/webaudio/AudioBufferSourceNode.idl:
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::create):
+        (WebCore::AudioContext::AudioContext):
+        * Modules/webaudio/AudioContext.h:
+        * Modules/webaudio/AudioListener.h:
+        * Modules/webaudio/AudioListener.idl:
+        * Modules/webaudio/AudioNode.cpp:
+        * Modules/webaudio/AudioNode.h:
+        * Modules/webaudio/AudioNode.idl:
+        * Modules/webaudio/AudioParam.h:
+        * Modules/webaudio/BaseAudioContext.cpp:
+        (WebCore::BaseAudioContext::BaseAudioContext):
+        * Modules/webaudio/BaseAudioContext.h:
+        (WebCore::BaseAudioContext::isOfflineContext const):
+        (WebCore::BaseAudioContext::BaseAudioContext):
+        * Modules/webaudio/DynamicsCompressorNode.cpp:
+        * Modules/webaudio/DynamicsCompressorNode.h:
+        * Modules/webaudio/OfflineAudioContext.cpp:
+        (WebCore::OfflineAudioContext::OfflineAudioContext):
+        * Modules/webaudio/OscillatorNode.h:
+        * Modules/webaudio/OscillatorNode.idl:
+        * Modules/webaudio/WebKitAudioBufferSourceNode.h: Removed.
+        * Modules/webaudio/WebKitAudioBufferSourceNode.idl: Removed.
+        * Modules/webaudio/WebKitAudioContext.cpp: Removed.
+        * Modules/webaudio/WebKitAudioContext.h: Removed.
+        * Modules/webaudio/WebKitAudioContext.idl: Removed.
+        * Modules/webaudio/WebKitAudioListener.h: Removed.
+        * Modules/webaudio/WebKitAudioListener.idl: Removed.
+        * Modules/webaudio/WebKitAudioPannerNode.cpp: Removed.
+        * Modules/webaudio/WebKitAudioPannerNode.h: Removed.
+        * Modules/webaudio/WebKitAudioPannerNode.idl: Removed.
+        * Modules/webaudio/WebKitDynamicsCompressorNode.h: Removed.
+        * Modules/webaudio/WebKitDynamicsCompressorNode.idl: Removed.
+        * Modules/webaudio/WebKitOfflineAudioContext.cpp: Removed.
+        * Modules/webaudio/WebKitOfflineAudioContext.h: Removed.
+        * Modules/webaudio/WebKitOfflineAudioContext.idl: Removed.
+        * Modules/webaudio/WebKitOscillatorNode.h: Removed.
+        * Modules/webaudio/WebKitOscillatorNode.idl: Removed.
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setAudioContextRestrictions):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
</ins><span class="cx"> 2021-05-14  Sam Weinig  <weinig@apple.com>
</span><span class="cx"> 
</span><span class="cx">         CustomPaintImage being in platform/graphics is a layering violation
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/DerivedSources.make    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -429,13 +429,6 @@
</span><span class="cx">     $(WebCore)/Modules/webaudio/StereoPannerOptions.idl \
</span><span class="cx">     $(WebCore)/Modules/webaudio/WaveShaperNode.idl \
</span><span class="cx">     $(WebCore)/Modules/webaudio/WaveShaperOptions.idl \
</span><del>-    $(WebCore)/Modules/webaudio/WebKitAudioBufferSourceNode.idl \
-    $(WebCore)/Modules/webaudio/WebKitAudioContext.idl \
-    $(WebCore)/Modules/webaudio/WebKitAudioListener.idl \
-    $(WebCore)/Modules/webaudio/WebKitAudioPannerNode.idl \
-    $(WebCore)/Modules/webaudio/WebKitDynamicsCompressorNode.idl \
-    $(WebCore)/Modules/webaudio/WebKitOfflineAudioContext.idl \
-    $(WebCore)/Modules/webaudio/WebKitOscillatorNode.idl \
</del><span class="cx">     $(WebCore)/Modules/webauthn/AttestationConveyancePreference.idl \
</span><span class="cx">     $(WebCore)/Modules/webauthn/AuthenticationExtensionsClientInputs.idl \
</span><span class="cx">     $(WebCore)/Modules/webauthn/AuthenticationExtensionsClientOutputs.idl \
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp  2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp     2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -36,14 +36,11 @@
</span><span class="cx"> #include "AudioUtilities.h"
</span><span class="cx"> #include "FloatConversion.h"
</span><span class="cx"> #include "ScriptExecutionContext.h"
</span><del>-#include "WebKitAudioBufferSourceNode.h"
-#include "WebKitAudioPannerNode.h"
</del><span class="cx"> #include <wtf/IsoMallocInlines.h>
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> WTF_MAKE_ISO_ALLOCATED_IMPL(AudioBufferSourceNode);
</span><del>-WTF_MAKE_ISO_ALLOCATED_IMPL(WebKitAudioBufferSourceNode);
</del><span class="cx"> 
</span><span class="cx"> constexpr double DefaultGrainDuration = 0.020; // 20ms
</span><span class="cx"> 
</span><span class="lines">@@ -93,7 +90,6 @@
</span><span class="cx"> 
</span><span class="cx"> AudioBufferSourceNode::~AudioBufferSourceNode()
</span><span class="cx"> {
</span><del>-    clearPannerNode();
</del><span class="cx">     uninitialize();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -146,9 +142,6 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // Apply the gain (in-place) to the output bus.
-    float totalGain = legacyGainValue();
-    outputBus.copyWithGainFrom(outputBus, totalGain);
</del><span class="cx">     outputBus.clearSilentFlag();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -419,7 +412,7 @@
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     DEBUG_LOG(LOGIDENTIFIER);
</span><span class="cx"> 
</span><del>-    if (buffer && m_wasBufferSet && shouldThrowOnAttemptToOverwriteBuffer())
</del><ins>+    if (buffer && m_wasBufferSet)
</ins><span class="cx">         return Exception { InvalidStateError, "The buffer was already set"_s };
</span><span class="cx"> 
</span><span class="cx">     // The context must be locked since changing the buffer can re-configure the number of channels that are output.
</span><span class="lines">@@ -537,10 +530,6 @@
</span><span class="cx"> 
</span><span class="cx"> double AudioBufferSourceNode::totalPitchRate()
</span><span class="cx"> {
</span><del>-    double dopplerRate = 1.0;
-    if (m_legacyPannerNode)
-        dopplerRate = m_legacyPannerNode->dopplerRate();
-    
</del><span class="cx">     // Incorporate buffer's sample-rate versus AudioContext's sample-rate.
</span><span class="cx">     // Normally it's not an issue because buffers are loaded at the AudioContext's sample-rate, but we can handle it in any case.
</span><span class="cx">     double sampleRateFactor = 1.0;
</span><span class="lines">@@ -550,7 +539,7 @@
</span><span class="cx">     double basePitchRate = playbackRate().finalValue();
</span><span class="cx">     double detune = pow(2, m_detune->finalValue() / 1200);
</span><span class="cx"> 
</span><del>-    double totalRate = dopplerRate * sampleRateFactor * basePitchRate * detune;
</del><ins>+    double totalRate = sampleRateFactor * basePitchRate * detune;
</ins><span class="cx"> 
</span><span class="cx">     totalRate = std::clamp(totalRate, -MaxRate, MaxRate);
</span><span class="cx">     
</span><span class="lines">@@ -567,24 +556,6 @@
</span><span class="cx">     return !isPlayingOrScheduled() || hasFinished() || !m_buffer;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AudioBufferSourceNode::setPannerNode(WebKitAudioPannerNode* pannerNode)
-{
-    if (m_legacyPannerNode != pannerNode && !hasFinished())
-        m_legacyPannerNode = pannerNode;
-}
-
-void AudioBufferSourceNode::clearPannerNode()
-{
-    m_legacyPannerNode = nullptr;
-}
-
-void AudioBufferSourceNode::finish()
-{
-    clearPannerNode();
-    ASSERT(!m_legacyPannerNode);
-    AudioScheduledSourceNode::finish();
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(WEB_AUDIO)
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h    2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h       2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -33,13 +33,12 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class AudioBuffer;
</span><del>-class WebKitAudioPannerNode;
</del><span class="cx"> struct AudioBufferSourceOptions;
</span><span class="cx"> 
</span><span class="cx"> // AudioBufferSourceNode is an AudioNode representing an audio source from an in-memory audio asset represented by an AudioBuffer.
</span><span class="cx"> // It generally will be used for short sounds which require a high degree of scheduling flexibility (can playback in rhythmically perfect ways).
</span><span class="cx"> 
</span><del>-class AudioBufferSourceNode : public AudioScheduledSourceNode {
</del><ins>+class AudioBufferSourceNode final : public AudioScheduledSourceNode {
</ins><span class="cx">     WTF_MAKE_ISO_ALLOCATED(AudioBufferSourceNode);
</span><span class="cx"> public:
</span><span class="cx">     static Ref<AudioBufferSourceNode> create(BaseAudioContext&, float sampleRate);
</span><span class="lines">@@ -76,16 +75,9 @@
</span><span class="cx">     AudioParam& detune() { return m_detune.get(); }
</span><span class="cx">     AudioParam& playbackRate() { return m_playbackRate.get(); }
</span><span class="cx"> 
</span><del>-    // If a panner node is set, then we can incorporate doppler shift into the playback pitch rate.
-    void setPannerNode(WebKitAudioPannerNode*);
-    void clearPannerNode();
-
</del><span class="cx">     // If we are no longer playing, propogate silence ahead to downstream nodes.
</span><span class="cx">     bool propagatesSilence() const final;
</span><span class="cx"> 
</span><del>-    // AudioScheduledSourceNode
-    void finish() final;
-
</del><span class="cx">     const char* activeDOMObjectName() const override { return "AudioBufferSourceNode"; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="lines">@@ -95,9 +87,6 @@
</span><span class="cx">     double tailTime() const final { return 0; }
</span><span class="cx">     double latencyTime() const final { return 0; }
</span><span class="cx"> 
</span><del>-    virtual double legacyGainValue() const { return 1.0; }
-    virtual bool shouldThrowOnAttemptToOverwriteBuffer() const { return true; }
-
</del><span class="cx">     ExceptionOr<void> startPlaying(double when, double grainOffset, Optional<double> grainDuration);
</span><span class="cx">     void adjustGrainParameters();
</span><span class="cx"> 
</span><span class="lines">@@ -137,13 +126,9 @@
</span><span class="cx">     double m_wasGrainDurationGiven { false };
</span><span class="cx"> 
</span><span class="cx">     // totalPitchRate() returns the instantaneous pitch rate (non-time preserving).
</span><del>-    // It incorporates the base pitch rate, any sample-rate conversion factor from the buffer, and any doppler shift from an associated panner node.
</del><ins>+    // It incorporates the base pitch rate, any sample-rate conversion factor from the buffer.
</ins><span class="cx">     double totalPitchRate();
</span><span class="cx"> 
</span><del>-    // We optionally keep track of a panner node which has a doppler shift that is incorporated into
-    // the pitch rate.
-    AudioConnectionRefPtr<WebKitAudioPannerNode> m_legacyPannerNode;
-
</del><span class="cx">     // This synchronizes process() with setBuffer() which can cause dynamic channel count changes.
</span><span class="cx">     mutable Lock m_processLock;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioBufferSourceNodeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl  2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl     2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -41,11 +41,4 @@
</span><span class="cx">     attribute double loopEnd;
</span><span class="cx"> 
</span><span class="cx">     [ImplementedAs=startLater] undefined start(optional double when = 0, optional double grainOffset = 0, optional double grainDuration);
</span><del>-
-    // FIXME: Those constants are kept for backward compatibility with the prefixed API and should
-    // be removed once we stop supporting it.
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short UNSCHEDULED_STATE = 0;
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short SCHEDULED_STATE = 1;
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short PLAYING_STATE = 2;
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short FINISHED_STATE = 3;
</del><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp   2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp      2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -100,14 +100,14 @@
</span><span class="cx">     if (contextOptions.sampleRate.hasValue() && !isSupportedSampleRate(contextOptions.sampleRate.value()))
</span><span class="cx">         return Exception { SyntaxError, "sampleRate is not in range"_s };
</span><span class="cx">     
</span><del>-    auto audioContext = adoptRef(*new AudioContext(document, IsLegacyWebKitAudioContext::No, contextOptions));
</del><ins>+    auto audioContext = adoptRef(*new AudioContext(document, contextOptions));
</ins><span class="cx">     audioContext->suspendIfNeeded();
</span><span class="cx">     return audioContext;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Constructor for rendering to the audio hardware.
</span><del>-AudioContext::AudioContext(Document& document, IsLegacyWebKitAudioContext isLegacyWebKitAudioContext, const AudioContextOptions& contextOptions)
-    : BaseAudioContext(document, isLegacyWebKitAudioContext, contextOptions)
</del><ins>+AudioContext::AudioContext(Document& document, const AudioContextOptions& contextOptions)
+    : BaseAudioContext(document, contextOptions)
</ins><span class="cx">     , m_mediaSession(PlatformMediaSession::create(PlatformMediaSessionManager::sharedManager(), *this))
</span><span class="cx"> {
</span><span class="cx">     constructCommon();
</span><span class="lines">@@ -119,14 +119,6 @@
</span><span class="cx">     document.registerForVisibilityStateChangedCallbacks(*this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-// Only needed for WebKitOfflineAudioContext.
-AudioContext::AudioContext(Document& document, IsLegacyWebKitAudioContext isLegacyWebKitAudioContext, unsigned numberOfChannels, float sampleRate, RefPtr<AudioBuffer>&& renderTarget)
-    : BaseAudioContext(document, isLegacyWebKitAudioContext, numberOfChannels, sampleRate, WTFMove(renderTarget))
-    , m_mediaSession(PlatformMediaSession::create(PlatformMediaSessionManager::sharedManager(), *this))
-{
-    constructCommon();
-}
-
</del><span class="cx"> void AudioContext::constructCommon()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(document());
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioContext.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioContext.h     2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioContext.h        2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> 
</span><span class="cx"> struct AudioTimestamp;
</span><span class="cx"> 
</span><del>-class AudioContext
</del><ins>+class AudioContext final
</ins><span class="cx">     : public BaseAudioContext
</span><span class="cx">     , public MediaProducer
</span><span class="cx">     , public MediaCanStartListener
</span><span class="lines">@@ -89,8 +89,7 @@
</span><span class="cx">     void removeBehaviorRestriction(BehaviorRestrictions restriction) { m_restrictions &= ~restriction; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    explicit AudioContext(Document&, IsLegacyWebKitAudioContext, const AudioContextOptions& = { });
-    AudioContext(Document&, IsLegacyWebKitAudioContext, unsigned numberOfChannels, float sampleRate, RefPtr<AudioBuffer>&& renderTarget);
</del><ins>+    explicit AudioContext(Document&, const AudioContextOptions& = { });
</ins><span class="cx"> 
</span><span class="cx">     bool willBeginPlayback();
</span><span class="cx"> 
</span><span class="lines">@@ -107,24 +106,24 @@
</span><span class="cx">     bool willPausePlayback();
</span><span class="cx"> 
</span><span class="cx">     // MediaProducer
</span><del>-    MediaProducer::MediaStateFlags mediaState() const override;
-    void pageMutedStateDidChange() override;
</del><ins>+    MediaProducer::MediaStateFlags mediaState() const final;
+    void pageMutedStateDidChange() final;
</ins><span class="cx"> 
</span><span class="cx">     // PlatformMediaSessionClient
</span><del>-    PlatformMediaSession::MediaType mediaType() const override { return isSuspended() ? PlatformMediaSession::MediaType::None : PlatformMediaSession::MediaType::WebAudio; }
-    PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::MediaType::WebAudio; }
-    void mayResumePlayback(bool shouldResume) override;
-    void suspendPlayback() override;
-    bool canReceiveRemoteControlCommands() const override { return false; }
-    void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType, const PlatformMediaSession::RemoteCommandArgument&) override { }
-    bool supportsSeeking() const override { return false; }
-    bool shouldOverrideBackgroundPlaybackRestriction(PlatformMediaSession::InterruptionType) const override { return false; }
</del><ins>+    PlatformMediaSession::MediaType mediaType() const final { return isSuspended() ? PlatformMediaSession::MediaType::None : PlatformMediaSession::MediaType::WebAudio; }
+    PlatformMediaSession::MediaType presentationType() const final { return PlatformMediaSession::MediaType::WebAudio; }
+    void mayResumePlayback(bool shouldResume) final;
+    void suspendPlayback() final;
+    bool canReceiveRemoteControlCommands() const final { return false; }
+    void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType, const PlatformMediaSession::RemoteCommandArgument&) final { }
+    bool supportsSeeking() const final { return false; }
+    bool shouldOverrideBackgroundPlaybackRestriction(PlatformMediaSession::InterruptionType) const final { return false; }
</ins><span class="cx">     bool canProduceAudio() const final { return true; }
</span><span class="cx">     bool isSuspended() const final;
</span><span class="cx">     MediaSessionGroupIdentifier mediaSessionGroupIdentifier() const final;
</span><span class="cx"> 
</span><span class="cx">     // MediaCanStartListener.
</span><del>-    void mediaCanStart(Document&) override;
</del><ins>+    void mediaCanStart(Document&) final;
</ins><span class="cx"> 
</span><span class="cx">     // VisibilityChangeClient
</span><span class="cx">     void visibilityStateChanged() final;
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioListenerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioListener.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioListener.h    2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioListener.h       2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">     {
</span><span class="cx">         return adoptRef(*new AudioListener(context));
</span><span class="cx">     }
</span><del>-    virtual ~AudioListener();
</del><ins>+    ~AudioListener();
</ins><span class="cx"> 
</span><span class="cx">     AudioParam& positionX() { return m_positionX.get(); }
</span><span class="cx">     AudioParam& positionY() { return m_positionY.get(); }
</span><span class="lines">@@ -70,8 +70,6 @@
</span><span class="cx"> 
</span><span class="cx">     FloatPoint3D upVector() const;
</span><span class="cx"> 
</span><del>-    virtual bool isWebKitAudioListener() const { return false; }
-
</del><span class="cx">     bool hasSampleAccurateValues() const;
</span><span class="cx">     bool shouldUseARate() const;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioListeneridl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioListener.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioListener.idl  2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioListener.idl     2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -29,7 +29,8 @@
</span><span class="cx"> 
</span><span class="cx"> [
</span><span class="cx">     Conditional=WEB_AUDIO,
</span><del>-    Exposed=Window
</del><ins>+    Exposed=Window,
+    ImplementationLacksVTable
</ins><span class="cx"> ] interface AudioListener {
</span><span class="cx">     readonly attribute AudioParam positionX;
</span><span class="cx">     readonly attribute AudioParam positionY;
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp      2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioNode.cpp 2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> #include "AudioNodeOutput.h"
</span><span class="cx"> #include "AudioParam.h"
</span><span class="cx"> #include "Logging.h"
</span><del>-#include "WebKitAudioContext.h"
</del><span class="cx"> #include <wtf/Atomics.h>
</span><span class="cx"> #include <wtf/IsoMallocInlines.h>
</span><span class="cx"> #include <wtf/MainThread.h>
</span><span class="lines">@@ -673,14 +672,6 @@
</span><span class="cx">         context().deleteMarkedNodes();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Variant<RefPtr<BaseAudioContext>, RefPtr<WebKitAudioContext>> AudioNode::contextForBindings()
-{
-    auto& context = this->context();
-    if (context.isWebKitAudioContext())
-        return makeRefPtr(static_cast<WebKitAudioContext&>(context));
-    return makeRefPtr(context);
-}
-
</del><span class="cx"> void AudioNode::derefWithLock()
</span><span class="cx"> {
</span><span class="cx">     ASSERT(context().isGraphOwner());
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioNode.h        2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioNode.h   2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -42,7 +42,6 @@
</span><span class="cx"> class AudioNodeOutput;
</span><span class="cx"> class AudioParam;
</span><span class="cx"> class BaseAudioContext;
</span><del>-class WebKitAudioContext;
</del><span class="cx"> 
</span><span class="cx"> // An AudioNode is the basic building block for handling audio within an AudioContext.
</span><span class="cx"> // It may be an audio source, an intermediate processing module, or an audio destination.
</span><span class="lines">@@ -90,8 +89,6 @@
</span><span class="cx">     BaseAudioContext& context();
</span><span class="cx">     const BaseAudioContext& context() const;
</span><span class="cx"> 
</span><del>-    Variant<RefPtr<BaseAudioContext>, RefPtr<WebKitAudioContext>> contextForBindings();
-
</del><span class="cx">     NodeType nodeType() const { return m_nodeType; }
</span><span class="cx"> 
</span><span class="cx">     // Can be called from main thread or context's audio thread.
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioNodeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioNode.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioNode.idl      2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioNode.idl 2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx">     CustomToJSObject,
</span><span class="cx">     Exposed=Window
</span><span class="cx"> ] interface AudioNode : EventTarget {
</span><del>-    [ImplementedAs=contextForBindings] readonly attribute (BaseAudioContext or WebKitAudioContext) context;
</del><ins>+    readonly attribute BaseAudioContext context;
</ins><span class="cx">     readonly attribute unsigned long numberOfInputs;
</span><span class="cx">     readonly attribute unsigned long numberOfOutputs;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioAudioParamh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/AudioParam.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/AudioParam.h       2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/AudioParam.h  2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include "AudioParamTimeline.h"
</span><span class="cx"> #include "AudioSummingJunction.h"
</span><span class="cx"> #include "AutomationRate.h"
</span><del>-#include "WebKitAudioContext.h"
</del><span class="cx"> #include <JavaScriptCore/Float32Array.h>
</span><span class="cx"> #include <sys/types.h>
</span><span class="cx"> #include <wtf/LoggerHelper.h>
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioBaseAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.cpp       2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.cpp  2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -80,7 +80,6 @@
</span><span class="cx"> #include "StereoPannerNode.h"
</span><span class="cx"> #include "StereoPannerOptions.h"
</span><span class="cx"> #include "WaveShaperNode.h"
</span><del>-#include "WebKitAudioListener.h"
</del><span class="cx"> #include <JavaScriptCore/ScriptCallStack.h>
</span><span class="cx"> #include <wtf/Scope.h>
</span><span class="cx"> 
</span><span class="lines">@@ -132,7 +131,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Constructor for rendering to the audio hardware.
</span><del>-BaseAudioContext::BaseAudioContext(Document& document, IsLegacyWebKitAudioContext isLegacyWebKitAudioContext, const AudioContextOptions& contextOptions)
</del><ins>+BaseAudioContext::BaseAudioContext(Document& document, const AudioContextOptions& contextOptions)
</ins><span class="cx">     : ActiveDOMObject(document)
</span><span class="cx"> #if !RELEASE_LOG_DISABLED
</span><span class="cx">     , m_logger(document.logger())
</span><span class="lines">@@ -141,7 +140,7 @@
</span><span class="cx">     , m_contextID(generateAudioContextID())
</span><span class="cx">     , m_worklet(AudioWorklet::create(*this))
</span><span class="cx">     , m_destinationNode(makeUniqueRef<DefaultAudioDestinationNode>(*this, contextOptions.sampleRate))
</span><del>-    , m_listener(isLegacyWebKitAudioContext == IsLegacyWebKitAudioContext::Yes ? Ref<AudioListener>(WebKitAudioListener::create(*this)) : AudioListener::create(*this))
</del><ins>+    , m_listener(AudioListener::create(*this))
</ins><span class="cx"> {
</span><span class="cx">     liveAudioContexts().add(m_contextID);
</span><span class="cx"> 
</span><span class="lines">@@ -163,7 +162,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Constructor for offline (non-realtime) rendering.
</span><del>-BaseAudioContext::BaseAudioContext(Document& document, IsLegacyWebKitAudioContext isLegacyWebKitAudioContext, unsigned numberOfChannels, float sampleRate, RefPtr<AudioBuffer>&& renderTarget)
</del><ins>+BaseAudioContext::BaseAudioContext(Document& document, unsigned numberOfChannels, float sampleRate, RefPtr<AudioBuffer>&& renderTarget)
</ins><span class="cx">     : ActiveDOMObject(document)
</span><span class="cx"> #if !RELEASE_LOG_DISABLED
</span><span class="cx">     , m_logger(document.logger())
</span><span class="lines">@@ -174,7 +173,7 @@
</span><span class="cx">     , m_isOfflineContext(true)
</span><span class="cx">     , m_renderTarget(WTFMove(renderTarget))
</span><span class="cx">     , m_destinationNode(makeUniqueRef<OfflineAudioDestinationNode>(*this, numberOfChannels, sampleRate, m_renderTarget.copyRef()))
</span><del>-    , m_listener(isLegacyWebKitAudioContext == IsLegacyWebKitAudioContext::Yes ? Ref<AudioListener>(WebKitAudioListener::create(*this)) : AudioListener::create(*this))
</del><ins>+    , m_listener(AudioListener::create(*this))
</ins><span class="cx"> {
</span><span class="cx">     liveAudioContexts().add(m_contextID);
</span><span class="cx">     FFTFrame::initialize();
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioBaseAudioContexth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.h 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.h    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -115,7 +115,6 @@
</span><span class="cx">     bool isInitialized() const;
</span><span class="cx">     
</span><span class="cx">     bool isOfflineContext() const { return m_isOfflineContext; }
</span><del>-    virtual bool isWebKitAudioContext() const { return false; }
</del><span class="cx"> 
</span><span class="cx">     AudioDestinationNode& destination() { return m_destinationNode.get(); }
</span><span class="cx">     const AudioDestinationNode& destination() const { return m_destinationNode.get(); }
</span><span class="lines">@@ -297,9 +296,8 @@
</span><span class="cx">     const HashMap<String, Vector<AudioParamDescriptor>>& parameterDescriptorMap() const { return m_parameterDescriptorMap; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><del>-    enum class IsLegacyWebKitAudioContext : bool { No, Yes };
-    explicit BaseAudioContext(Document&, IsLegacyWebKitAudioContext, const AudioContextOptions& = { });
-    BaseAudioContext(Document&, IsLegacyWebKitAudioContext, unsigned numberOfChannels, float sampleRate, RefPtr<AudioBuffer>&& renderTarget);
</del><ins>+    explicit BaseAudioContext(Document&, const AudioContextOptions& = { });
+    BaseAudioContext(Document&, unsigned numberOfChannels, float sampleRate, RefPtr<AudioBuffer>&& renderTarget);
</ins><span class="cx">     
</span><span class="cx">     void clearPendingActivity();
</span><span class="cx">     void setPendingActivity();
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioDynamicsCompressorNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.cpp    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> #include "AudioNodeOutput.h"
</span><span class="cx"> #include "AudioUtilities.h"
</span><span class="cx"> #include "DynamicsCompressor.h"
</span><del>-#include "WebKitDynamicsCompressorNode.h"
</del><span class="cx"> #include <wtf/IsoMallocInlines.h>
</span><span class="cx"> 
</span><span class="cx"> // Set output to stereo by default.
</span><span class="lines">@@ -43,7 +42,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> WTF_MAKE_ISO_ALLOCATED_IMPL(DynamicsCompressorNode);
</span><del>-WTF_MAKE_ISO_ALLOCATED_IMPL(WebKitDynamicsCompressorNode);
</del><span class="cx"> 
</span><span class="cx"> ExceptionOr<Ref<DynamicsCompressorNode>> DynamicsCompressorNode::create(BaseAudioContext& context, const DynamicsCompressorOptions& options)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioDynamicsCompressorNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.h   2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/DynamicsCompressorNode.h      2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -34,18 +34,18 @@
</span><span class="cx"> 
</span><span class="cx"> class DynamicsCompressor;
</span><span class="cx"> 
</span><del>-class DynamicsCompressorNode : public AudioNode {
</del><ins>+class DynamicsCompressorNode final : public AudioNode {
</ins><span class="cx">     WTF_MAKE_ISO_ALLOCATED(DynamicsCompressorNode);
</span><span class="cx"> public:
</span><span class="cx">     static ExceptionOr<Ref<DynamicsCompressorNode>> create(BaseAudioContext&, const DynamicsCompressorOptions& = { });
</span><span class="cx"> 
</span><del>-    virtual ~DynamicsCompressorNode();
</del><ins>+    ~DynamicsCompressorNode();
</ins><span class="cx"> 
</span><span class="cx">     // AudioNode
</span><del>-    void process(size_t framesToProcess) override;
</del><ins>+    void process(size_t framesToProcess) final;
</ins><span class="cx">     void processOnlyAudioParams(size_t framesToProcess) final;
</span><del>-    void initialize() override;
-    void uninitialize() override;
</del><ins>+    void initialize() final;
+    void uninitialize() final;
</ins><span class="cx"> 
</span><span class="cx">     // Static compression curve parameters.
</span><span class="cx">     AudioParam& threshold() { return m_threshold.get(); }
</span><span class="lines">@@ -65,8 +65,8 @@
</span><span class="cx">     virtual void setReduction(float reduction) { m_reduction = reduction; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    double tailTime() const override;
-    double latencyTime() const override;
</del><ins>+    double tailTime() const final;
+    double latencyTime() const final;
</ins><span class="cx">     bool requiresTailProcessing() const final;
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr<DynamicsCompressor> m_dynamicsCompressor;
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioOfflineAudioContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp    2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp       2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> WTF_MAKE_ISO_ALLOCATED_IMPL(OfflineAudioContext);
</span><span class="cx"> 
</span><span class="cx"> inline OfflineAudioContext::OfflineAudioContext(Document& document, unsigned numberOfChannels, unsigned length, float sampleRate, RefPtr<AudioBuffer>&& renderTarget)
</span><del>-    : BaseAudioContext(document, IsLegacyWebKitAudioContext::No, numberOfChannels, sampleRate, WTFMove(renderTarget))
</del><ins>+    : BaseAudioContext(document, numberOfChannels, sampleRate, WTFMove(renderTarget))
</ins><span class="cx">     , m_length(length)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioOscillatorNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/OscillatorNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/OscillatorNode.h   2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/OscillatorNode.h      2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> 
</span><span class="cx"> // OscillatorNode is an audio generator of periodic waveforms.
</span><span class="cx"> 
</span><del>-class OscillatorNode : public AudioScheduledSourceNode {
</del><ins>+class OscillatorNode final : public AudioScheduledSourceNode {
</ins><span class="cx">     WTF_MAKE_ISO_ALLOCATED(OscillatorNode);
</span><span class="cx"> public:
</span><span class="cx">     static ExceptionOr<Ref<OscillatorNode>> create(BaseAudioContext&, const OscillatorOptions& = { });
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> 
</span><span class="cx">     virtual ~OscillatorNode();
</span><span class="cx"> 
</span><del>-    const char* activeDOMObjectName() const override { return "OscillatorNode"; }
</del><ins>+    const char* activeDOMObjectName() const final { return "OscillatorNode"; }
</ins><span class="cx"> 
</span><span class="cx">     OscillatorType type() const { return m_type; }
</span><span class="cx">     ExceptionOr<void> setType(OscillatorType);
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioOscillatorNodeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/OscillatorNode.idl    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -37,11 +37,4 @@
</span><span class="cx">     readonly attribute AudioParam detune; // in Cents
</span><span class="cx"> 
</span><span class="cx">     undefined setPeriodicWave(PeriodicWave wave);
</span><del>-
-    // FIXME: Those legacy playback state constants are kept for backward compatibility with the
-    // prefixed API and should be removed once we stop supporting the prefixed API.
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short UNSCHEDULED_STATE = 0;
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short SCHEDULED_STATE = 1;
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short PLAYING_STATE = 2;
-    [EnabledBySetting=PrefixedWebAudio] const unsigned short FINISHED_STATE = 3;
</del><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioBufferSourceNodeh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.h      2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.h 2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,56 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- * Copyright (C) 2020, Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "AudioBufferSourceNode.h"
-#include "AudioParam.h"
-
-namespace WebCore {
-
-class WebKitAudioBufferSourceNode final : public AudioBufferSourceNode {
-    WTF_MAKE_ISO_ALLOCATED(WebKitAudioBufferSourceNode);
-public:
-    static Ref<WebKitAudioBufferSourceNode> create(BaseAudioContext& context)
-    {
-        return adoptRef(*new WebKitAudioBufferSourceNode(context));
-    }
-
-    AudioParam& gain() const { return m_gain.get(); }
-
-private:
-    explicit WebKitAudioBufferSourceNode(BaseAudioContext& context)
-        : AudioBufferSourceNode(context)
-        , m_gain(AudioParam::create(context, "gain"_s, 1.0, 0.0, 1.0, AutomationRate::KRate))
-    {
-    }
-
-    bool shouldThrowOnAttemptToOverwriteBuffer() const final { return false; }
-    double legacyGainValue() const final { return gain().value(); }
-
-    Ref<AudioParam> m_gain;
-};
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioBufferSourceNodeidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.idl    2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioBufferSourceNode.idl       2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,51 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- * Copyright (C) 2020, Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// A cached (non-streamed), memory-resident audio source
-[
-    Conditional=WEB_AUDIO,
-    EnabledBySetting=PrefixedWebAudio,
-    JSGenerateToJSObject,
-    LegacyNoInterfaceObject
-] interface WebKitAudioBufferSourceNode : AudioScheduledSourceNode {
-    attribute AudioBuffer? buffer;
-
-    const unsigned short UNSCHEDULED_STATE = 0;
-    const unsigned short SCHEDULED_STATE = 1;
-    const unsigned short PLAYING_STATE = 2;
-    const unsigned short FINISHED_STATE = 3;
-
-    readonly attribute unsigned short playbackState;
-
-    readonly attribute AudioParam gain;
-    readonly attribute AudioParam playbackRate;
-
-    attribute boolean loop;
-
-    attribute double loopStart;
-    attribute double loopEnd;
-
-    [ImplementedAs=startLater] undefined start(optional double when = 0, optional double grainOffset = 0, optional double grainDuration);
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioContextcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.cpp     2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.cpp        2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,220 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- * Copyright (C) 2016 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "WebKitAudioContext.h"
-
-#include "JSDOMPromiseDeferred.h"
-#include "PeriodicWave.h"
-#include "WebKitAudioBufferSourceNode.h"
-#include "WebKitAudioPannerNode.h"
-#include "WebKitDynamicsCompressorNode.h"
-#include "WebKitOscillatorNode.h"
-#include <wtf/IsoMallocInlines.h>
-
-#if ENABLE(MEDIA_STREAM)
-#include "MediaStream.h"
-#include "MediaStreamAudioDestinationNode.h"
-#include "MediaStreamAudioSource.h"
-#include "MediaStreamAudioSourceNode.h"
-#include "MediaStreamAudioSourceOptions.h"
-#endif
-
-#if ENABLE(VIDEO)
-#include "HTMLMediaElement.h"
-#include "MediaElementAudioSourceNode.h"
-#include "MediaElementAudioSourceOptions.h"
-#endif
-
-constexpr unsigned MaxPeriodicWaveLength = 4096;
-
-namespace WebCore {
-
-WTF_MAKE_ISO_ALLOCATED_IMPL(WebKitAudioContext);
-
-#define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(document() && document()->page() && document()->page()->isAlwaysOnLoggingAllowed(), Media, "%p - WebKitAudioContext::" fmt, this, ##__VA_ARGS__)
-
-#if OS(WINDOWS)
-// Don't allow more than this number of simultaneous AudioContexts talking to hardware.
-constexpr unsigned maxHardwareContexts = 4;
-#endif
-
-ExceptionOr<Ref<WebKitAudioContext>> WebKitAudioContext::create(Document& document)
-{
-    ASSERT(isMainThread());
-#if OS(WINDOWS)
-    if (s_hardwareContextCount >= maxHardwareContexts)
-        return Exception { QuotaExceededError };
-#endif
-
-    auto audioContext = adoptRef(*new WebKitAudioContext(document));
-    audioContext->suspendIfNeeded();
-    return audioContext;
-}
-
-// Constructor for rendering to the audio hardware.
-WebKitAudioContext::WebKitAudioContext(Document& document)
-    : AudioContext(document, IsLegacyWebKitAudioContext::Yes)
-{
-}
-
-// Constructor for offline (non-realtime) rendering.
-WebKitAudioContext::WebKitAudioContext(Document& document, float sampleRate, Ref<AudioBuffer>&& renderTarget)
-    : AudioContext(document, IsLegacyWebKitAudioContext::Yes, renderTarget->numberOfChannels(), sampleRate, WTFMove(renderTarget))
-{
-}
-
-const char* WebKitAudioContext::activeDOMObjectName() const
-{
-    return "WebKitAudioContext";
-}
-
-#if ENABLE(VIDEO)
-
-ExceptionOr<Ref<MediaElementAudioSourceNode>> WebKitAudioContext::createMediaElementSource(HTMLMediaElement& mediaElement)
-{
-    ALWAYS_LOG(LOGIDENTIFIER);
-
-    ASSERT(isMainThread());
-    return MediaElementAudioSourceNode::create(*this, { &mediaElement });
-}
-
-#endif
-
-#if ENABLE(MEDIA_STREAM)
-
-ExceptionOr<Ref<MediaStreamAudioSourceNode>> WebKitAudioContext::createMediaStreamSource(MediaStream& mediaStream)
-{
-    ALWAYS_LOG(LOGIDENTIFIER);
-
-    ASSERT(isMainThread());
-    return MediaStreamAudioSourceNode::create(*this, { &mediaStream });
-}
-
-ExceptionOr<Ref<MediaStreamAudioDestinationNode>> WebKitAudioContext::createMediaStreamDestination()
-{
-    return MediaStreamAudioDestinationNode::create(*this);
-}
-
-#endif
-
-ExceptionOr<Ref<WebKitAudioPannerNode>> WebKitAudioContext::createWebKitPanner()
-{
-    ALWAYS_LOG(LOGIDENTIFIER);
-
-    ASSERT(isMainThread());
-    if (isStopped())
-        return Exception { InvalidStateError };
-
-    lazyInitialize();
-    return WebKitAudioPannerNode::create(*this);
-}
-
-ExceptionOr<Ref<WebKitOscillatorNode>> WebKitAudioContext::createWebKitOscillator()
-{
-    ALWAYS_LOG(LOGIDENTIFIER);
-
-    ASSERT(isMainThread());
-    if (isStopped())
-        return Exception { InvalidStateError };
-
-    lazyInitialize();
-
-    return WebKitOscillatorNode::create(*this);
-}
-
-ExceptionOr<Ref<PeriodicWave>> WebKitAudioContext::createPeriodicWave(Float32Array& real, Float32Array& imaginary)
-{
-    ALWAYS_LOG(LOGIDENTIFIER);
-    
-    ASSERT(isMainThread());
-    if (isStopped())
-        return Exception { InvalidStateError };
-
-    if (real.length() != imaginary.length() || real.length() > MaxPeriodicWaveLength || !real.length())
-        return Exception { IndexSizeError };
-    lazyInitialize();
-    return PeriodicWave::create(sampleRate(), real, imaginary);
-}
-
-ExceptionOr<Ref<WebKitAudioBufferSourceNode>> WebKitAudioContext::createWebKitBufferSource()
-{
-    ALWAYS_LOG(LOGIDENTIFIER);
-
-    ASSERT(isMainThread());
-    if (isStopped())
-        return Exception { InvalidStateError };
-
-    lazyInitialize();
-
-    return WebKitAudioBufferSourceNode::create(*this);
-}
-
-ExceptionOr<Ref<WebKitDynamicsCompressorNode>> WebKitAudioContext::createWebKitDynamicsCompressor()
-{
-    if (isStopped())
-        return Exception { InvalidStateError };
-
-    lazyInitialize();
-
-    return WebKitDynamicsCompressorNode::create(*this);
-}
-
-ExceptionOr<Ref<AudioBuffer>> WebKitAudioContext::createLegacyBuffer(ArrayBuffer& arrayBuffer, bool mixToMono)
-{
-    auto audioBuffer = AudioBuffer::createFromAudioFileData(arrayBuffer.data(), arrayBuffer.byteLength(), mixToMono, sampleRate());
-    if (!audioBuffer)
-        return Exception { SyntaxError };
-    return audioBuffer.releaseNonNull();
-}
-
-void WebKitAudioContext::close(DOMPromiseDeferred<void>&& promise)
-{
-    if (isOfflineContext() || isStopped()) {
-        promise.reject(InvalidStateError);
-        return;
-    }
-
-    if (state() == State::Closed) {
-        promise.resolve();
-        return;
-    }
-
-    addReaction(State::Closed, WTFMove(promise));
-
-    lazyInitialize();
-
-    destination().close([this, protectedThis = makeRef(*this)] {
-        setState(State::Closed);
-        uninitialize();
-    });
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioContexth"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.h       2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.h  2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,90 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- * Copyright (C) 2016-2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "AudioContext.h"
-#include "WebKitAudioListener.h"
-
-namespace WebCore {
-
-class AudioBuffer;
-class Document;
-class HTMLMediaElement;
-class MediaElementAudioSourceNode;
-class MediaStream;
-class MediaStreamAudioDestinationNode;
-class MediaStreamAudioSourceNode;
-class PeriodicWave;
-class WebKitAudioBufferSourceNode;
-class WebKitAudioPannerNode;
-class WebKitDynamicsCompressorNode;
-class WebKitOscillatorNode;
-
-// AudioContext is the cornerstone of the web audio API and all AudioNodes are created from it.
-// For thread safety between the audio thread and the main thread, it has a rendering graph locking mechanism.
-
-class WebKitAudioContext : public AudioContext
-{
-    WTF_MAKE_ISO_ALLOCATED(WebKitAudioContext);
-public:
-    // Create an WebKitAudioContext for rendering to the audio hardware.
-    static ExceptionOr<Ref<WebKitAudioContext>> create(Document&);
-
-    void close(DOMPromiseDeferred<void>&&);
-
-    WebKitAudioListener& listener() { return downcast<WebKitAudioListener>(AudioContext::listener()); }
-
-    // The AudioNode create methods are called on the main thread (from JavaScript).
-#if ENABLE(VIDEO)
-    ExceptionOr<Ref<MediaElementAudioSourceNode>> createMediaElementSource(HTMLMediaElement&);
-#endif
-#if ENABLE(MEDIA_STREAM)
-    ExceptionOr<Ref<MediaStreamAudioSourceNode>> createMediaStreamSource(MediaStream&);
-    ExceptionOr<Ref<MediaStreamAudioDestinationNode>> createMediaStreamDestination();
-#endif
-    ExceptionOr<Ref<WebKitAudioPannerNode>> createWebKitPanner();
-    ExceptionOr<Ref<WebKitOscillatorNode>> createWebKitOscillator();
-    ExceptionOr<Ref<PeriodicWave>> createPeriodicWave(Float32Array& real, Float32Array& imaginary);
-    ExceptionOr<Ref<WebKitAudioBufferSourceNode>> createWebKitBufferSource();
-    ExceptionOr<Ref<WebKitDynamicsCompressorNode>> createWebKitDynamicsCompressor();
-    ExceptionOr<Ref<AudioBuffer>> createLegacyBuffer(ArrayBuffer&, bool mixToMono);
-
-protected:
-    explicit WebKitAudioContext(Document&);
-    WebKitAudioContext(Document&, float sampleRate, Ref<AudioBuffer>&& renderTarget);
-
-private:
-    // ActiveDOMObject API.
-    const char* activeDOMObjectName() const override;
-
-    bool isWebKitAudioContext() const final { return true; }
-};
-
-} // WebCore
-
-SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::WebKitAudioContext)
-    static bool isType(const WebCore::BaseAudioContext& context) { return context.isWebKitAudioContext(); }
-SPECIALIZE_TYPE_TRAITS_END()
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioContextidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.idl     2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioContext.idl        2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,93 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- * Copyright (C) 2011 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    ActiveDOMObject,
-    Conditional=WEB_AUDIO,
-    EnabledBySetting=WebAudio&PrefixedWebAudio,
-    ExportMacro=WEBCORE_EXPORT,
-    InterfaceName=webkitAudioContext,
-    Exposed=Window
-] interface WebKitAudioContext : EventTarget {
-    [CallWith=Document] constructor();
-
-    // All rendered audio ultimately connects to destination, which represents the audio hardware.
-    readonly attribute AudioDestinationNode destination;
-
-    // All scheduled times are relative to this time in seconds.
-    readonly attribute unrestricted double currentTime;
-
-    // All AudioNodes in the context run at this sample-rate (sample-frames per second).
-    readonly attribute unrestricted float sampleRate;
-
-    // All panning is relative to this listener.
-    readonly attribute WebKitAudioListener listener;
-
-    [ImplementedAs=suspendRendering] Promise<undefined> suspend();
-    [ImplementedAs=resumeRendering] Promise<undefined> resume();
-    Promise<undefined> close();
-
-    readonly attribute AudioContextState state;
-    attribute EventHandler onstatechange;
-
-    // Number of AudioBufferSourceNodes that are currently playing.
-    readonly attribute unsigned long activeSourceCount;
-
-    AudioBuffer createBuffer(unsigned long numberOfChannels, unsigned long numberOfFrames, unrestricted float sampleRate);
-    [ImplementedAs=createLegacyBuffer] AudioBuffer createBuffer(ArrayBuffer buffer, boolean mixToMono);
-
-    // Asynchronous audio file data decoding.
-    undefined decodeAudioData(ArrayBuffer audioData, AudioBufferCallback? successCallback, optional AudioBufferCallback? errorCallback);
-
-    // Sources
-    [ImplementedAs=createWebKitBufferSource] WebKitAudioBufferSourceNode createBufferSource();
-
-    [Conditional=VIDEO] MediaElementAudioSourceNode createMediaElementSource(HTMLMediaElement mediaElement);
-
-    [Conditional=MEDIA_STREAM] MediaStreamAudioSourceNode createMediaStreamSource(MediaStream mediaStream);
-    [Conditional=MEDIA_STREAM] MediaStreamAudioDestinationNode createMediaStreamDestination();
-
-    // Processing nodes
-    GainNode createGain();
-    DelayNode createDelay(optional unrestricted double maxDelayTime = 1);
-    BiquadFilterNode createBiquadFilter();
-    WaveShaperNode createWaveShaper();
-    [ImplementedAs=createWebKitPanner] WebKitAudioPannerNode createPanner();
-    ConvolverNode createConvolver();
-    [ImplementedAs=createWebKitDynamicsCompressor] WebKitDynamicsCompressorNode createDynamicsCompressor();
-    AnalyserNode createAnalyser();
-    ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize = 0, optional unsigned long numberOfInputChannels = 2, optional unsigned long numberOfOutputChannels = 2);
-    [ImplementedAs=createWebKitOscillator] WebKitOscillatorNode createOscillator();
-    PeriodicWave createPeriodicWave(Float32Array real, Float32Array imag);
-
-    // Channel splitting and merging
-    ChannelSplitterNode createChannelSplitter(optional unsigned long numberOfOutputs = 6);
-    ChannelMergerNode createChannelMerger(optional unsigned long numberOfInputs = 6);
-
-    // Offline rendering
-    // undefined prepareOfflineBufferRendering(unsigned long numberOfChannels, unsigned long numberOfFrames, unrestricted float sampleRate);
-    attribute EventHandler oncomplete;
-    undefined startRendering();
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioListenerh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.h      2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.h 2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,72 +0,0 @@
</span><del>-/*
- * Copyright (C) 2020 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "AudioListener.h"
-
-namespace WebCore {
-
-class WebKitAudioListener final : public AudioListener {
-public:
-    static Ref<WebKitAudioListener> create(BaseAudioContext& context)
-    {
-        return adoptRef(*new WebKitAudioListener(context));
-    }
-
-    // Velocity
-    void setVelocity(float x, float y, float z) { setVelocity(FloatPoint3D(x, y, z)); }
-    void setVelocity(const FloatPoint3D& velocity) { m_velocity = velocity; }
-    const FloatPoint3D& velocity() const { return m_velocity; }
-
-    // Doppler factor
-    void setDopplerFactor(double dopplerFactor) { m_dopplerFactor = dopplerFactor; }
-    double dopplerFactor() const { return m_dopplerFactor; }
-
-    // Speed of sound
-    void setSpeedOfSound(double speedOfSound) { m_speedOfSound = speedOfSound; }
-    double speedOfSound() const { return m_speedOfSound; }
-
-private:
-    WebKitAudioListener(BaseAudioContext& context)
-        : AudioListener(context)
-        , m_velocity(0, 0, 0)
-    { }
-
-    bool isWebKitAudioListener() const final { return true; }
-
-    FloatPoint3D m_velocity;
-    double m_dopplerFactor { 1.0 };
-    double m_speedOfSound { 343.3 };
-};
-
-} // namespace WebCore
-
-SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::WebKitAudioListener)
-    static bool isType(const WebCore::AudioListener& listener) { return listener.isWebKitAudioListener(); }
-SPECIALIZE_TYPE_TRAITS_END()
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioListeneridl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.idl    2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioListener.idl       2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,40 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=WEB_AUDIO,
-    EnabledBySetting=PrefixedWebAudio,
-    LegacyNoInterfaceObject,
-] interface WebKitAudioListener {
-    attribute unrestricted float dopplerFactor;  // same as OpenAL (default 1.0)
-    attribute unrestricted float speedOfSound;   // in meters / second (default 343.3)
-
-    undefined setPosition(unrestricted float x, unrestricted float y, unrestricted float z);
-    undefined setOrientation(unrestricted float x, unrestricted float y, unrestricted float z, unrestricted float xUp, unrestricted float yUp, unrestricted float zUp);
-    undefined setVelocity(unrestricted float x, unrestricted float y, unrestricted float z);
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioPannerNodecpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp  2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.cpp     2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,345 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "WebKitAudioPannerNode.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "AudioBufferSourceNode.h"
-#include "AudioBus.h"
-#include "AudioContext.h"
-#include "AudioNodeInput.h"
-#include "AudioNodeOutput.h"
-#include "HRTFDatabaseLoader.h"
-#include "HRTFPanner.h"
-#include "ScriptExecutionContext.h"
-#include <wtf/IsoMallocInlines.h>
-#include <wtf/MathExtras.h>
-
-namespace WebCore {
-
-WTF_MAKE_ISO_ALLOCATED_IMPL(WebKitAudioPannerNode);
-
-static void fixNANs(double &x)
-{
-    if (std::isnan(x) || std::isinf(x))
-        x = 0.0;
-}
-
-WebKitAudioPannerNode::WebKitAudioPannerNode(WebKitAudioContext& context)
-    : AudioNode(context, NodeTypePanner)
-{
-    initializeDefaultNodeOptions(2, ChannelCountMode::ClampedMax, ChannelInterpretation::Speakers);
-
-    // Load the HRTF database asynchronously so we don't block the Javascript thread while creating the HRTF database.
-    m_hrtfDatabaseLoader = HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary(context.sampleRate());
-
-    addInput();
-    addOutput(2);
-
-    m_position = FloatPoint3D(0, 0, 0);
-    m_orientation = FloatPoint3D(1, 0, 0);
-    m_velocity = FloatPoint3D(0, 0, 0);
-
-    initialize();
-}
-
-WebKitAudioPannerNode::~WebKitAudioPannerNode()
-{
-    uninitialize();
-}
-
-void WebKitAudioPannerNode::pullInputs(size_t framesToProcess)
-{
-    // We override pullInputs(), so we can detect new AudioSourceNodes which have connected to us when new connections are made.
-    // These AudioSourceNodes need to be made aware of our existence in order to handle doppler shift pitch changes.
-    if (m_connectionCount != context().connectionCount()) {
-        m_connectionCount = context().connectionCount();
-
-        // Recursively go through all nodes connected to us.
-        HashSet<AudioNode*> visitedNodes;
-        notifyAudioSourcesConnectedToNode(this, visitedNodes);
-    }
-
-    AudioNode::pullInputs(framesToProcess);
-}
-
-void WebKitAudioPannerNode::process(size_t framesToProcess)
-{
-    AudioBus* destination = output(0)->bus();
-
-    if (!isInitialized() || !input(0)->isConnected() || !m_panner.get()) {
-        destination->zero();
-        return;
-    }
-
-    AudioBus* source = input(0)->bus();
-    if (!source) {
-        destination->zero();
-        return;
-    }
-
-    // HRTFDatabase should be loaded before proceeding for offline audio context when panningModel() is "HRTF".
-    if (panningModel() == PanningModelType::HRTF && !m_hrtfDatabaseLoader->isLoaded()) {
-        if (context().isOfflineContext())
-            m_hrtfDatabaseLoader->waitForLoaderThreadCompletion();
-        else {
-            destination->zero();
-            return;
-        }
-    }
-
-    // The audio thread can't block on this lock, so we use tryHoldLock() instead.
-    auto locker = tryHoldLock(m_processLock);
-    if (!locker) {
-        // Too bad - tryHoldLock() failed. We must be in the middle of changing the panner.
-        destination->zero();
-        return;
-    }
-
-    // Apply the panning effect.
-    double azimuth;
-    double elevation;
-    getAzimuthElevation(&azimuth, &elevation);
-    m_panner->pan(azimuth, elevation, source, destination, framesToProcess);
-
-    // Get the distance and cone gain.
-    double totalGain = distanceConeGain();
-
-    // Apply gain in-place.
-    destination->copyWithGainFrom(*destination, totalGain);
-}
-
-void WebKitAudioPannerNode::initialize()
-{
-    if (isInitialized())
-        return;
-
-    m_panner = Panner::create(m_panningModel, sampleRate(), m_hrtfDatabaseLoader.get());
-
-    AudioNode::initialize();
-}
-
-void WebKitAudioPannerNode::uninitialize()
-{
-    if (!isInitialized())
-        return;
-
-    m_panner = nullptr;
-    AudioNode::uninitialize();
-}
-
-WebKitAudioListener& WebKitAudioPannerNode::listener()
-{
-    return context().listener();
-}
-
-void WebKitAudioPannerNode::setPanningModel(PanningModelType model)
-{
-    if (!m_panner.get() || model != m_panningModel) {
-        // This synchronizes with process().
-        auto locker = holdLock(m_processLock);
-
-        m_panner = Panner::create(model, sampleRate(), m_hrtfDatabaseLoader.get());
-        m_panningModel = model;
-    }
-}
-
-DistanceModelType WebKitAudioPannerNode::distanceModel() const
-{
-    return const_cast<WebKitAudioPannerNode*>(this)->m_distanceEffect.model();
-}
-
-void WebKitAudioPannerNode::setDistanceModel(DistanceModelType model)
-{
-    m_distanceEffect.setModel(model, true);
-}
-
-void WebKitAudioPannerNode::getAzimuthElevation(double* outAzimuth, double* outElevation)
-{
-    // FIXME: we should cache azimuth and elevation (if possible), so we only re-calculate if a change has been made.
-
-    double azimuth = 0.0;
-
-    // Calculate the source-listener vector
-    FloatPoint3D listenerPosition = listener().position();
-    FloatPoint3D sourceListener = position() - listenerPosition;
-
-    if (sourceListener.isZero()) {
-        // degenerate case if source and listener are at the same point
-        *outAzimuth = 0.0;
-        *outElevation = 0.0;
-        return;
-    }
-
-    sourceListener.normalize();
-
-    // Align axes
-    FloatPoint3D listenerFront = listener().orientation();
-    FloatPoint3D listenerUp = listener().upVector();
-    FloatPoint3D listenerRight = listenerFront.cross(listenerUp);
-    listenerRight.normalize();
-
-    FloatPoint3D listenerFrontNorm = listenerFront;
-    listenerFrontNorm.normalize();
-
-    FloatPoint3D up = listenerRight.cross(listenerFrontNorm);
-
-    float upProjection = sourceListener.dot(up);
-
-    FloatPoint3D projectedSource = sourceListener - upProjection * up;
-    projectedSource.normalize();
-
-    azimuth = 180.0 * acos(projectedSource.dot(listenerRight)) / piDouble;
-    fixNANs(azimuth); // avoid illegal values
-
-    // Source  in front or behind the listener
-    double frontBack = projectedSource.dot(listenerFrontNorm);
-    if (frontBack < 0.0)
-        azimuth = 360.0 - azimuth;
-
-    // Make azimuth relative to "front" and not "right" listener vector
-    if ((azimuth >= 0.0) && (azimuth <= 270.0))
-        azimuth = 90.0 - azimuth;
-    else
-        azimuth = 450.0 - azimuth;
-
-    // Elevation
-    double elevation = 90.0 - 180.0 * acos(sourceListener.dot(up)) / piDouble;
-    fixNANs(elevation); // avoid illegal values
-
-    if (elevation > 90.0)
-        elevation = 180.0 - elevation;
-    else if (elevation < -90.0)
-        elevation = -180.0 - elevation;
-
-    if (outAzimuth)
-        *outAzimuth = azimuth;
-    if (outElevation)
-        *outElevation = elevation;
-}
-
-float WebKitAudioPannerNode::dopplerRate()
-{
-    double dopplerShift = 1.0;
-
-    // FIXME: optimize for case when neither source nor listener has changed...
-    double dopplerFactor = listener().dopplerFactor();
-
-    if (dopplerFactor > 0.0) {
-        double speedOfSound = listener().speedOfSound();
-
-        const FloatPoint3D& sourceVelocity = m_velocity;
-        const FloatPoint3D& listenerVelocity = listener().velocity();
-
-        // Don't bother if both source and listener have no velocity
-        bool sourceHasVelocity = !sourceVelocity.isZero();
-        bool listenerHasVelocity = !listenerVelocity.isZero();
-
-        if (sourceHasVelocity || listenerHasVelocity) {
-            // Calculate the source to listener vector
-            FloatPoint3D listenerPosition = listener().position();
-            FloatPoint3D sourceToListener = position() - listenerPosition;
-
-            double sourceListenerMagnitude = sourceToListener.length();
-
-            double listenerProjection = sourceToListener.dot(listenerVelocity) / sourceListenerMagnitude;
-            double sourceProjection = sourceToListener.dot(sourceVelocity) / sourceListenerMagnitude;
-
-            listenerProjection = -listenerProjection;
-            sourceProjection = -sourceProjection;
-
-            double scaledSpeedOfSound = speedOfSound / dopplerFactor;
-            listenerProjection = std::min(listenerProjection, scaledSpeedOfSound);
-            sourceProjection = std::min(sourceProjection, scaledSpeedOfSound);
-
-            dopplerShift = ((speedOfSound - dopplerFactor * listenerProjection) / (speedOfSound - dopplerFactor * sourceProjection));
-            fixNANs(dopplerShift); // avoid illegal values
-
-            // Limit the pitch shifting to 4 octaves up and 3 octaves down.
-            if (dopplerShift > 16.0)
-                dopplerShift = 16.0;
-            else if (dopplerShift < 0.125)
-                dopplerShift = 0.125;
-        }
-    }
-
-    return static_cast<float>(dopplerShift);
-}
-
-float WebKitAudioPannerNode::distanceConeGain()
-{
-    FloatPoint3D listenerPosition = listener().position();
-    FloatPoint3D sourcePosition = position();
-
-    double listenerDistance = sourcePosition.distanceTo(listenerPosition);
-    double distanceGain = m_distanceEffect.gain(listenerDistance);
-
-    // FIXME: could optimize by caching coneGain
-    double coneGain = m_coneEffect.gain(sourcePosition, m_orientation, listenerPosition);
-
-    return float(distanceGain * coneGain);
-}
-
-void WebKitAudioPannerNode::notifyAudioSourcesConnectedToNode(AudioNode* node, HashSet<AudioNode*>& visitedNodes)
-{
-    ASSERT(node);
-    if (!node)
-        return;
-
-    // First check if this node is an AudioBufferSourceNode. If so, let it know about us so that doppler shift pitch can be taken into account.
-    if (node->nodeType() == NodeTypeAudioBufferSource) {
-        AudioBufferSourceNode* bufferSourceNode = reinterpret_cast<AudioBufferSourceNode*>(node);
-        bufferSourceNode->setPannerNode(this);
-    } else {
-        // Go through all inputs to this node.
-        for (unsigned i = 0; i < node->numberOfInputs(); ++i) {
-            AudioNodeInput* input = node->input(i);
-
-            // For each input, go through all of its connections, looking for AudioBufferSourceNodes.
-            for (unsigned j = 0; j < input->numberOfRenderingConnections(); ++j) {
-                AudioNodeOutput* connectedOutput = input->renderingOutput(j);
-                AudioNode* connectedNode = connectedOutput->node();
-                if (visitedNodes.contains(connectedNode))
-                    continue;
-
-                visitedNodes.add(connectedNode);
-                notifyAudioSourcesConnectedToNode(connectedNode, visitedNodes);
-            }
-        }
-    }
-}
-
-bool WebKitAudioPannerNode::requiresTailProcessing() const
-{
-    // If there's no internal panner method set up yet, assume we require tail
-    // processing in case the HRTF panner is set later, which does require tail
-    // processing.
-    return !m_panner || m_panner->requiresTailProcessing();
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioPannerNodeh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.h    2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.h       2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,152 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if ENABLE(WEB_AUDIO)
-
-#include "AudioNode.h"
-#include "AudioParam.h"
-#include "Cone.h"
-#include "Distance.h"
-#include "FloatPoint3D.h"
-#include "Panner.h"
-#include "WebKitAudioContext.h"
-#include "WebKitAudioListener.h"
-#include <memory>
-#include <wtf/HashSet.h>
-#include <wtf/Lock.h>
-
-namespace WebCore {
-
-class HRTFDatabaseLoader;
-
-// PannerNode is an AudioNode with one input and one output.
-// It positions a sound in 3D space, with the exact effect dependent on the panning model.
-// It has a position and an orientation in 3D space which is relative to the position and orientation of the context's AudioListener.
-// A distance effect will attenuate the gain as the position moves away from the listener.
-// A cone effect will attenuate the gain as the orientation moves away from the listener.
-// All of these effects follow the OpenAL specification very closely.
-
-class WebKitAudioPannerNode final : public AudioNode {
-    WTF_MAKE_ISO_ALLOCATED(WebKitAudioPannerNode);
-public:
-    static Ref<WebKitAudioPannerNode> create(WebKitAudioContext& context)
-    {
-        return adoptRef(*new WebKitAudioPannerNode(context));
-    }
-
-    virtual ~WebKitAudioPannerNode();
-
-    WebKitAudioContext& context() { return downcast<WebKitAudioContext>(AudioNode::context()); }
-    const WebKitAudioContext& context() const { return downcast<WebKitAudioContext>(AudioNode::context()); }
-
-    // AudioNode
-    void process(size_t framesToProcess) override;
-    void pullInputs(size_t framesToProcess) override;
-    void initialize() override;
-    void uninitialize() override;
-
-    // Listener
-    WebKitAudioListener& listener();
-
-    // Panning model
-    PanningModelType panningModel() const { return m_panningModel; }
-    void setPanningModel(PanningModelType);
-
-    // Position
-    FloatPoint3D position() const { return m_position; }
-    void setPosition(float x, float y, float z) { m_position = FloatPoint3D(x, y, z); }
-
-    // Orientation
-    FloatPoint3D orientation() const { return m_orientation; }
-    void setOrientation(float x, float y, float z) { m_orientation = FloatPoint3D(x, y, z); }
-
-    // Velocity
-    FloatPoint3D velocity() const { return m_velocity; }
-    void setVelocity(float x, float y, float z) { m_velocity = FloatPoint3D(x, y, z); }
-
-    // Distance parameters
-    DistanceModelType distanceModel() const;
-    void setDistanceModel(DistanceModelType);
-
-    double refDistance() { return m_distanceEffect.refDistance(); }
-    void setRefDistance(double refDistance) { m_distanceEffect.setRefDistance(refDistance); }
-
-    double maxDistance() { return m_distanceEffect.maxDistance(); }
-    void setMaxDistance(double maxDistance) { m_distanceEffect.setMaxDistance(maxDistance); }
-
-    double rolloffFactor() { return m_distanceEffect.rolloffFactor(); }
-    void setRolloffFactor(double rolloffFactor) { m_distanceEffect.setRolloffFactor(rolloffFactor); }
-
-    // Sound cones - angles in degrees
-    double coneInnerAngle() const { return m_coneEffect.innerAngle(); }
-    void setConeInnerAngle(double angle) { m_coneEffect.setInnerAngle(angle); }
-
-    double coneOuterAngle() const { return m_coneEffect.outerAngle(); }
-    void setConeOuterAngle(double angle) { m_coneEffect.setOuterAngle(angle); }
-
-    double coneOuterGain() const { return m_coneEffect.outerGain(); }
-    void setConeOuterGain(double angle) { m_coneEffect.setOuterGain(angle); }
-
-    void getAzimuthElevation(double* outAzimuth, double* outElevation);
-    float dopplerRate();
-
-    double tailTime() const override { return m_panner ? m_panner->tailTime() : 0; }
-    double latencyTime() const override { return m_panner ? m_panner->latencyTime() : 0; }
-    bool requiresTailProcessing() const final;
-
-private:
-    explicit WebKitAudioPannerNode(WebKitAudioContext&);
-
-    // Returns the combined distance and cone gain attenuation.
-    float distanceConeGain();
-
-    // Notifies any AudioBufferSourceNodes connected to us either directly or indirectly about our existence.
-    // This is in order to handle the pitch change necessary for the doppler shift.
-    void notifyAudioSourcesConnectedToNode(AudioNode*, HashSet<AudioNode*>& visitedNodes);
-
-    std::unique_ptr<Panner> m_panner;
-    PanningModelType m_panningModel { PanningModelType::HRTF };
-
-    FloatPoint3D m_position;
-    FloatPoint3D m_orientation;
-    FloatPoint3D m_velocity;
-
-    // Gain
-    DistanceEffect m_distanceEffect;
-    ConeEffect m_coneEffect;
-
-    // HRTF Database loader
-    RefPtr<HRTFDatabaseLoader> m_hrtfDatabaseLoader;
-
-    unsigned m_connectionCount { 0 };
-
-    // Synchronize process() and setPanningModel() which can change the panner.
-    mutable Lock m_processLock;
-};
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitAudioPannerNodeidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.idl  2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitAudioPannerNode.idl     2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,51 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=WEB_AUDIO,
-    EnabledBySetting=PrefixedWebAudio,
-    JSGenerateToJSObject,
-    InterfaceName=webkitAudioPannerNode,
-    Exposed=Window
-] interface WebKitAudioPannerNode : AudioNode {
-    // Default model for stereo is HRTF
-    attribute PanningModelType panningModel;
-
-    // Uses a 3D cartesian coordinate system
-    undefined setPosition(unrestricted float x, unrestricted float y, unrestricted float z);
-    undefined setOrientation(unrestricted float x, unrestricted float y, unrestricted float z);
-    undefined setVelocity(unrestricted float x, unrestricted float y, unrestricted float z);
-
-    // Distance model
-    attribute DistanceModelType distanceModel;
-
-    attribute unrestricted double refDistance;
-    attribute unrestricted double maxDistance;
-    attribute unrestricted double rolloffFactor;
-
-    // Directional sound cone
-    attribute unrestricted double coneInnerAngle;
-    attribute unrestricted double coneOuterAngle;
-    attribute unrestricted double coneOuterGain;
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitDynamicsCompressorNodeh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.h     2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.h        2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011, Google Inc. All rights reserved.
- * Copyright (C) 2020, Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "DynamicsCompressorNode.h"
-
-namespace WebCore {
-
-class WebKitDynamicsCompressorNode final : public DynamicsCompressorNode {
-    WTF_MAKE_ISO_ALLOCATED(WebKitDynamicsCompressorNode);
-public:
-    static Ref<WebKitDynamicsCompressorNode> create(WebKitAudioContext& context)
-    {
-        return adoptRef(*new WebKitDynamicsCompressorNode(context));
-    }
-
-    AudioParam& legacyReduction() { return m_legacyReduction.get(); }
-
-private:
-    explicit WebKitDynamicsCompressorNode(WebKitAudioContext& context)
-        : DynamicsCompressorNode(context)
-        , m_legacyReduction(AudioParam::create(context, "reduction"_s, 0, -20, 0, AutomationRate::KRate))
-    {
-        initializeDefaultNodeOptions(2, ChannelCountMode::ClampedMax, ChannelInterpretation::Speakers);
-    }
-
-    void setReduction(float reduction) final
-    {
-        DynamicsCompressorNode::setReduction(reduction);
-        m_legacyReduction->setValue(reduction);
-    }
-
-    Ref<AudioParam> m_legacyReduction;
-};
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitDynamicsCompressorNodeidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.idl   2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitDynamicsCompressorNode.idl      2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011, Google Inc. All rights reserved.
- * Copyright (C) 2020, Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=WEB_AUDIO,
-    EnabledBySetting=PrefixedWebAudio,
-    JSGenerateToJSObject,
-    LegacyNoInterfaceObject
-] interface WebKitDynamicsCompressorNode : AudioNode {
-    readonly attribute AudioParam threshold; // in Decibels
-    readonly attribute AudioParam knee; // in Decibels
-    readonly attribute AudioParam ratio; // unit-less
-    readonly attribute AudioParam attack; // in Seconds
-    readonly attribute AudioParam release; // in Seconds
-    [ImplementedAs=legacyReduction] readonly attribute AudioParam reduction; // in Decibels
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitOfflineAudioContextcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.cpp      2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.cpp 2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,69 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(WEB_AUDIO)
-
-#include "WebKitOfflineAudioContext.h"
-
-#include "AudioBuffer.h"
-#include "Document.h"
-#include <wtf/IsoMallocInlines.h>
-
-namespace WebCore {
-
-WTF_MAKE_ISO_ALLOCATED_IMPL(WebKitOfflineAudioContext);
-
-WebKitOfflineAudioContext::WebKitOfflineAudioContext(Document& document, float sampleRate, Ref<AudioBuffer>&& renderTarget)
-    : WebKitAudioContext(document, sampleRate, WTFMove(renderTarget))
-{
-}
-
-WebKitOfflineAudioContext::~WebKitOfflineAudioContext() = default;
-
-ExceptionOr<Ref<WebKitOfflineAudioContext>> WebKitOfflineAudioContext::create(ScriptExecutionContext& context, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate)
-{
-    // FIXME: Add support for workers.
-    if (!is<Document>(context))
-        return Exception { NotSupportedError };
-    if (!numberOfChannels || numberOfChannels > 10 || !numberOfFrames || !isSupportedSampleRate(sampleRate))
-        return Exception { SyntaxError };
-    auto renderTarget = AudioBuffer::create(numberOfChannels, numberOfFrames, sampleRate);
-    if (!renderTarget)
-        return Exception { SyntaxError };
-
-    auto audioContext = adoptRef(*new WebKitOfflineAudioContext(downcast<Document>(context), sampleRate, renderTarget.releaseNonNull()));
-    audioContext->suspendIfNeeded();
-    return audioContext;
-}
-
-const char* WebKitOfflineAudioContext::activeDOMObjectName() const
-{
-    return "WebKitOfflineAudioContext";
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(WEB_AUDIO)
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitOfflineAudioContexth"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.h        2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.h   2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "WebKitAudioContext.h"
-
-namespace WebCore {
-
-class WebKitOfflineAudioContext final : public WebKitAudioContext {
-    WTF_MAKE_ISO_ALLOCATED(WebKitOfflineAudioContext);
-public:
-    static ExceptionOr<Ref<WebKitOfflineAudioContext>> create(ScriptExecutionContext&, unsigned numberOfChannels, size_t numberOfFrames, float sampleRate);
-    ~WebKitOfflineAudioContext();
-
-private:
-    WebKitOfflineAudioContext(Document&, float sampleRate, Ref<AudioBuffer>&& renderTarget);
-
-    // ActiveDOMObject API.
-    const char* activeDOMObjectName() const final;
-};
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitOfflineAudioContextidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.idl      2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitOfflineAudioContext.idl 2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,33 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    Conditional=WEB_AUDIO,
-    EnabledBySetting=PrefixedWebAudio,
-    InterfaceName=webkitOfflineAudioContext,
-    JSGenerateToJSObject,
-    Exposed=Window
-] interface WebKitOfflineAudioContext : WebKitAudioContext {
-    [CallWith=ScriptExecutionContext] constructor(unsigned long numberOfChannels, unsigned long numberOfFrames, unrestricted float sampleRate);
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitOscillatorNodeh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.h     2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.h        2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, Google Inc. All rights reserved.
- * Copyright (C) 2020, Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include "OscillatorNode.h"
-#include "WebKitAudioContext.h"
-
-namespace WebCore {
-
-class WebKitOscillatorNode final : public OscillatorNode {
-public:
-    static ExceptionOr<Ref<WebKitOscillatorNode>> create(WebKitAudioContext& context)
-    {
-        return adoptRef(*new WebKitOscillatorNode(context));
-    }
-
-    void setWebKitPeriodicWave(PeriodicWave* wave)
-    {
-        if (!wave)
-            return;
-        setPeriodicWave(*wave);
-    }
-
-private:
-    explicit WebKitOscillatorNode(WebKitAudioContext& context)
-        : OscillatorNode(context)
-    {
-        setType(OscillatorType::Sine);
-    }
-
-    const char* activeDOMObjectName() const final { return "WebKitOscillatorNode"; }
-};
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioWebKitOscillatorNodeidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.idl   2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/webaudio/WebKitOscillatorNode.idl      2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,47 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012, Google Inc. All rights reserved.
- * Copyright (C) 2016-2020, Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-[
-    ActiveDOMObject,
-    Conditional=WEB_AUDIO,
-    EnabledBySetting=WebAudio&PrefixedWebAudio,
-    JSGenerateToJSObject,
-    LegacyNoInterfaceObject,
-] interface WebKitOscillatorNode : AudioScheduledSourceNode {
-    attribute OscillatorType type;
-
-    // Playback state constants.
-    const unsigned short UNSCHEDULED_STATE = 0;
-    const unsigned short SCHEDULED_STATE = 1;
-    const unsigned short PLAYING_STATE = 2;
-    const unsigned short FINISHED_STATE = 3;
-
-    readonly attribute unsigned short playbackState;
-
-    readonly attribute AudioParam frequency; // in Hertz
-    readonly attribute AudioParam detune; // in Cents
-
-    [ImplementedAs=setWebKitPeriodicWave] undefined setPeriodicWave(PeriodicWave? wave);
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketDeflateFramercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp       2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp  2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -31,6 +31,8 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "WebSocketDeflateFramer.h"
</span><span class="cx"> 
</span><ins>+#include "WebSocketExtensionProcessor.h"
+#include "WebSocketFrame.h"
</ins><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/text/StringHash.h>
</span><span class="cx"> #include <wtf/text/StringToIntegerConversion.h>
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebsocketsWebSocketDeflateFramerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.h 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Modules/websockets/WebSocketDeflateFramer.h    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #pragma once
</span><span class="cx"> 
</span><span class="cx"> #include "WebSocketDeflater.h"
</span><ins>+#include <wtf/text/WTFString.h>
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreSourcestxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Sources.txt (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Sources.txt 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/Sources.txt    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -282,9 +282,6 @@
</span><span class="cx"> Modules/webaudio/WaveShaperDSPKernel.cpp
</span><span class="cx"> Modules/webaudio/WaveShaperNode.cpp
</span><span class="cx"> Modules/webaudio/WaveShaperProcessor.cpp
</span><del>-Modules/webaudio/WebKitAudioContext.cpp
-Modules/webaudio/WebKitAudioPannerNode.cpp
-Modules/webaudio/WebKitOfflineAudioContext.cpp
</del><span class="cx"> Modules/webauthn/AuthenticatorAssertionResponse.cpp
</span><span class="cx"> Modules/webauthn/AuthenticatorAttestationResponse.cpp
</span><span class="cx"> Modules/webauthn/AuthenticatorCoordinator.cpp
</span><span class="lines">@@ -3778,11 +3775,6 @@
</span><span class="cx"> JSWebGPUTexture.cpp
</span><span class="cx"> JSWebGPUTextureView.cpp
</span><span class="cx"> JSWebKitAnimationEvent.cpp
</span><del>-JSWebKitAudioBufferSourceNode.cpp
-JSWebKitAudioContext.cpp
-JSWebKitAudioListener.cpp
-JSWebKitAudioPannerNode.cpp
-JSWebKitDynamicsCompressorNode.cpp
</del><span class="cx"> JSWebKitMediaKeyError.cpp
</span><span class="cx"> JSWebKitMediaKeyMessageEvent.cpp
</span><span class="cx"> JSWebKitMediaKeyNeededEvent.cpp
</span><span class="lines">@@ -3789,8 +3781,6 @@
</span><span class="cx"> JSWebKitMediaKeySession.cpp
</span><span class="cx"> JSWebKitMediaKeys.cpp
</span><span class="cx"> JSWebKitNamespace.cpp
</span><del>-JSWebKitOfflineAudioContext.cpp
-JSWebKitOscillatorNode.cpp
</del><span class="cx"> JSWebKitPlaybackTargetAvailabilityEvent.cpp
</span><span class="cx"> JSWebKitPoint.cpp
</span><span class="cx"> JSWebKitTransitionEvent.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj   2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj      2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -2524,13 +2524,10 @@
</span><span class="cx">          830A1C7D24DB788B002ECCAD /* MediaElementAudioSourceOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 830A1C7C24DB7870002ECCAD /* MediaElementAudioSourceOptions.h */; };
</span><span class="cx">          830A36BD1DAC5FAD006D7D09 /* JSMouseEventInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 830A36BB1DAC5FA7006D7D09 /* JSMouseEventInit.h */; };
</span><span class="cx">          830D0B6924F57D67007ED122 /* IIRProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 830D0B6624F57D50007ED122 /* IIRProcessor.h */; };
</span><del>-               830EEABA24DB6A64009EFBCE /* WebKitDynamicsCompressorNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 830EEAB724DB6A52009EFBCE /* WebKitDynamicsCompressorNode.h */; };
</del><span class="cx">           83102B271F9EADD900E404B9 /* JSExtendableMessageEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 83102B231F9EADC200E404B9 /* JSExtendableMessageEvent.h */; };
</span><span class="cx">          8311C0031FAA2E9500E3C8E5 /* SWServerJobQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8311C0021FAA2E8900E3C8E5 /* SWServerJobQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          83120C711C56F3FB001CB112 /* HTMLDataElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 834B86A71C56E83A00F3F0E3 /* HTMLDataElement.h */; };
</span><span class="cx">          83198FBF24A160DD00420B05 /* BaseAudioContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 83198FBE24A160C100420B05 /* BaseAudioContext.h */; };
</span><del>-               831B61762499A5BB00C07C79 /* WebKitAudioPannerNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 831B61742499A59C00C07C79 /* WebKitAudioPannerNode.h */; };
-               831B61772499A5BF00C07C79 /* WebKitOfflineAudioContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 831B61752499A59D00C07C79 /* WebKitOfflineAudioContext.h */; };
</del><span class="cx">           8321507E1F27EA1B0095B136 /* NavigatorBeacon.h in Headers */ = {isa = PBXBuildFile; fileRef = 8321507B1F27EA150095B136 /* NavigatorBeacon.h */; };
</span><span class="cx">          8326BF8E24D35C33001F8A85 /* OverSampleType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8326BF8924D35C20001F8A85 /* OverSampleType.h */; };
</span><span class="cx">          8326BF8F24D35C39001F8A85 /* WaveShaperOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8326BF8C24D35C20001F8A85 /* WaveShaperOptions.h */; };
</span><span class="lines">@@ -2544,9 +2541,7 @@
</span><span class="cx">          833BD8182524D4F5006E72B3 /* WorkletGlobalScopeProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 833BD8162524D4E3006E72B3 /* WorkletGlobalScopeProxy.h */; };
</span><span class="cx">          833BD81D2524D530006E72B3 /* AudioWorkletGlobalScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 833BD8192524D51B006E72B3 /* AudioWorkletGlobalScope.h */; };
</span><span class="cx">          833BD81E2524D534006E72B3 /* AudioWorkletMessagingProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 833BD81B2524D51C006E72B3 /* AudioWorkletMessagingProxy.h */; };
</span><del>-               833D1C7624D8D54F00E813DF /* WebKitAudioBufferSourceNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 833D1C7324D8D53300E813DF /* WebKitAudioBufferSourceNode.h */; };
</del><span class="cx">           83407FC11E8D9C1700E048D3 /* VisibilityChangeClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 83407FC01E8D9C1200E048D3 /* VisibilityChangeClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-               8343D98424D0DEE9009ABD49 /* WebKitOscillatorNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 8343D98124D0DEA9009ABD49 /* WebKitOscillatorNode.h */; };
</del><span class="cx">           834476EF1DA5BC5E002B5EB0 /* JSScrollLogicalPosition.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E9B3011DA5A51E00FFD8D4 /* JSScrollLogicalPosition.h */; };
</span><span class="cx">          834476EF1DA5BC5E002B5EC1 /* JSScrollIntoViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E9B3011DA5A51E00FFD8E5 /* JSScrollIntoViewOptions.h */; };
</span><span class="cx">          834476EF1DA5BC5E002B6EB0 /* JSScrollBehavior.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E9B3011DA5A51E00FFE8D4 /* JSScrollBehavior.h */; };
</span><span class="lines">@@ -2559,7 +2554,6 @@
</span><span class="cx">          835051A424F573C4009911D7 /* IIRFilterNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 835051A224F573AF009911D7 /* IIRFilterNode.h */; };
</span><span class="cx">          835051A524F573C8009911D7 /* IIRFilterOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 835051A024F573AE009911D7 /* IIRFilterOptions.h */; };
</span><span class="cx">          83520C7E1A71BFCC006BD2AA /* CSSFontFamily.h in Headers */ = {isa = PBXBuildFile; fileRef = 83520C7D1A71BFCC006BD2AA /* CSSFontFamily.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-               8356F97F24D9F818006C3E41 /* WebKitAudioListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 8356F97E24D9F809006C3E41 /* WebKitAudioListener.h */; };
</del><span class="cx">           8358CB701C53277500E0C2D8 /* JSXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F570AD1C53268E007FD6CB /* JSXMLDocument.h */; };
</span><span class="cx">          835D2D781F5F1FBD00141DED /* HTMLInputElementEntriesAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 835D2D751F5F1FB800141DED /* HTMLInputElementEntriesAPI.h */; };
</span><span class="cx">          835D363719FF6193004C93AB /* StyleBuilderCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 835D363619FF6193004C93AB /* StyleBuilderCustom.h */; };
</span><span class="lines">@@ -2612,7 +2606,6 @@
</span><span class="cx">          83A2ABDB24D86DE000E2D73D /* DelayOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A2ABD824D86DC600E2D73D /* DelayOptions.h */; };
</span><span class="cx">          83A8AC401FABBFE5002064AC /* ServiceWorkerIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 83A8AC3E1FABBFD1002064AC /* ServiceWorkerIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          83ACD01325229E10000D124E /* WorkletOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 83ACD01025229E04000D124E /* WorkletOptions.h */; };
</span><del>-               83B1A702249985F000FE5961 /* WebKitAudioContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B1A6FF249985D000FE5961 /* WebKitAudioContext.h */; };
</del><span class="cx">           83B2D1751B8BCD6A00A02E47 /* NativeNodeFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          83B74EF61F3E0BF200996BC7 /* KeepaliveRequestTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B74EF31F3E0BD700996BC7 /* KeepaliveRequestTracker.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">          83B9687B19F8AB83004EF7AF /* StyleBuilderConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 83B9687919F8AB83004EF7AF /* StyleBuilderConverter.h */; };
</span><span class="lines">@@ -10936,7 +10929,6 @@
</span><span class="cx">          830030F31B7D33A600ED3AAC /* GenericCachedHTMLCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GenericCachedHTMLCollection.cpp; sourceTree = "<group>"; };
</span><span class="cx">          830030F41B7D33A600ED3AAC /* GenericCachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericCachedHTMLCollection.h; sourceTree = "<group>"; };
</span><span class="cx">          830030F71B7D398800ED3AAC /* CachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedHTMLCollection.h; sourceTree = "<group>"; };
</span><del>-               83003E2B249997A80060AF94 /* WebKitAudioContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitAudioContext.cpp; sourceTree = "<group>"; };
</del><span class="cx">           83005F9A24EB1D2800480F9B /* AudioTimestamp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AudioTimestamp.h; sourceTree = "<group>"; };
</span><span class="cx">          83005F9C24EB1D2900480F9B /* AudioTimestamp.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = AudioTimestamp.idl; sourceTree = "<group>"; };
</span><span class="cx">          830334FB1F549052004DF707 /* FileSystemDirectoryReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileSystemDirectoryReader.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -10960,8 +10952,6 @@
</span><span class="cx">          830A36BB1DAC5FA7006D7D09 /* JSMouseEventInit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMouseEventInit.h; sourceTree = "<group>"; };
</span><span class="cx">          830D0B6624F57D50007ED122 /* IIRProcessor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IIRProcessor.h; sourceTree = "<group>"; };
</span><span class="cx">          830D0B6824F57D50007ED122 /* IIRProcessor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = IIRProcessor.cpp; sourceTree = "<group>"; };
</span><del>-               830EEAB724DB6A52009EFBCE /* WebKitDynamicsCompressorNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebKitDynamicsCompressorNode.h; sourceTree = "<group>"; };
-               830EEAB924DB6A52009EFBCE /* WebKitDynamicsCompressorNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebKitDynamicsCompressorNode.idl; sourceTree = "<group>"; };
</del><span class="cx">           83102B231F9EADC200E404B9 /* JSExtendableMessageEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSExtendableMessageEvent.h; sourceTree = "<group>"; };
</span><span class="cx">          83102B251F9EADC200E404B9 /* JSExtendableMessageEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSExtendableMessageEvent.cpp; sourceTree = "<group>"; };
</span><span class="cx">          8311C0001FAA2E8900E3C8E5 /* SWServerJobQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SWServerJobQueue.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -10970,12 +10960,6 @@
</span><span class="cx">          83198FBD24A160C100420B05 /* BaseAudioContext.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BaseAudioContext.idl; sourceTree = "<group>"; };
</span><span class="cx">          83198FBE24A160C100420B05 /* BaseAudioContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseAudioContext.h; sourceTree = "<group>"; };
</span><span class="cx">          831A3EA8253F78C20067804F /* WorkerOrWorkletGlobalScope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkerOrWorkletGlobalScope.cpp; sourceTree = "<group>"; };
</span><del>-               831B616F2499A59800C07C79 /* WebKitAudioPannerNode.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebKitAudioPannerNode.idl; sourceTree = "<group>"; };
-               831B61712499A59900C07C79 /* WebKitAudioPannerNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitAudioPannerNode.cpp; sourceTree = "<group>"; };
-               831B61722499A59A00C07C79 /* WebKitOfflineAudioContext.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebKitOfflineAudioContext.idl; sourceTree = "<group>"; };
-               831B61732499A59B00C07C79 /* WebKitOfflineAudioContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitOfflineAudioContext.cpp; sourceTree = "<group>"; };
-               831B61742499A59C00C07C79 /* WebKitAudioPannerNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitAudioPannerNode.h; sourceTree = "<group>"; };
-               831B61752499A59D00C07C79 /* WebKitOfflineAudioContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitOfflineAudioContext.h; sourceTree = "<group>"; };
</del><span class="cx">           831C46C31F9EE5E000EBD450 /* JSExtendableMessageEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSExtendableMessageEventCustom.cpp; sourceTree = "<group>"; };
</span><span class="cx">          831D1F291C56ECA000F5F6C0 /* HTMLDataElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLDataElement.cpp; sourceTree = "<group>"; };
</span><span class="cx">          8321507A1F27EA150095B136 /* NavigatorBeacon.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NavigatorBeacon.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -11006,11 +10990,7 @@
</span><span class="cx">          833BD81B2524D51C006E72B3 /* AudioWorkletMessagingProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioWorkletMessagingProxy.h; sourceTree = "<group>"; };
</span><span class="cx">          833BD81C2524D51D006E72B3 /* AudioWorkletMessagingProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioWorkletMessagingProxy.cpp; sourceTree = "<group>"; };
</span><span class="cx">          833CF70F20DB3F5F00141BCC /* JSPerformanceObserverCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSPerformanceObserverCustom.cpp; sourceTree = "<group>"; };
</span><del>-               833D1C7324D8D53300E813DF /* WebKitAudioBufferSourceNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebKitAudioBufferSourceNode.h; sourceTree = "<group>"; };
-               833D1C7524D8D53300E813DF /* WebKitAudioBufferSourceNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebKitAudioBufferSourceNode.idl; sourceTree = "<group>"; };
</del><span class="cx">           83407FC01E8D9C1200E048D3 /* VisibilityChangeClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VisibilityChangeClient.h; sourceTree = "<group>"; };
</span><del>-               8343D98124D0DEA9009ABD49 /* WebKitOscillatorNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebKitOscillatorNode.h; sourceTree = "<group>"; };
-               8343D98324D0DEA9009ABD49 /* WebKitOscillatorNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebKitOscillatorNode.idl; sourceTree = "<group>"; };
</del><span class="cx">           8348BFA91B85729500912F36 /* ClassCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClassCollection.cpp; sourceTree = "<group>"; };
</span><span class="cx">          8348BFAA1B85729500912F36 /* ClassCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClassCollection.h; sourceTree = "<group>"; };
</span><span class="cx">          834A6A382526844100747F5D /* WorkletParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkletParameters.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -11041,8 +11021,6 @@
</span><span class="cx">          8350C3E81DA59B6200356446 /* ScrollToOptions.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ScrollToOptions.idl; sourceTree = "<group>"; };
</span><span class="cx">          83520C7D1A71BFCC006BD2AA /* CSSFontFamily.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSSFontFamily.h; sourceTree = "<group>"; };
</span><span class="cx">          835657C61ECAB0E800CDE72D /* JSDOMMatrixInit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMatrixInit.cpp; sourceTree = "<group>"; };
</span><del>-               8356F97C24D9F808006C3E41 /* WebKitAudioListener.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = WebKitAudioListener.idl; sourceTree = "<group>"; };
-               8356F97E24D9F809006C3E41 /* WebKitAudioListener.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebKitAudioListener.h; sourceTree = "<group>"; };
</del><span class="cx">           835AA388253F55BB00746554 /* WorkerOrWorkletScriptController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkerOrWorkletScriptController.cpp; sourceTree = "<group>"; };
</span><span class="cx">          835B680E1F548BDE0071F7F6 /* JSFileSystemEntryCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFileSystemEntryCustom.cpp; sourceTree = "<group>"; };
</span><span class="cx">          835D2D741F5F1FB800141DED /* HTMLInputElement+EntriesAPI.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "HTMLInputElement+EntriesAPI.idl"; sourceTree = "<group>"; };
</span><span class="lines">@@ -11153,8 +11131,6 @@
</span><span class="cx">          83A8AC3E1FABBFD1002064AC /* ServiceWorkerIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerIdentifier.h; sourceTree = "<group>"; };
</span><span class="cx">          83ACD01025229E04000D124E /* WorkletOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkletOptions.h; sourceTree = "<group>"; };
</span><span class="cx">          83ACD01225229E04000D124E /* WorkletOptions.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WorkletOptions.idl; sourceTree = "<group>"; };
</span><del>-               83B1A6FF249985D000FE5961 /* WebKitAudioContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitAudioContext.h; sourceTree = "<group>"; };
-               83B1A701249985D000FE5961 /* WebKitAudioContext.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebKitAudioContext.idl; sourceTree = "<group>"; };
</del><span class="cx">           83B250091FA1181C00BC02D9 /* JSServiceWorkerClientType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSServiceWorkerClientType.h; sourceTree = "<group>"; };
</span><span class="cx">          83B2500B1FA1181D00BC02D9 /* JSServiceWorkerClientType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSServiceWorkerClientType.cpp; sourceTree = "<group>"; };
</span><span class="cx">          83B5DA451FA9079300B59DF4 /* JSNavigatorCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNavigatorCustom.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -31147,23 +31123,6 @@
</span><span class="cx">                          8326BF8D24D35C21001F8A85 /* WaveShaperOptions.idl */,
</span><span class="cx">                          FD7F298F13D4C0CB00AD9535 /* WaveShaperProcessor.cpp */,
</span><span class="cx">                          FD7F299013D4C0CB00AD9535 /* WaveShaperProcessor.h */,
</span><del>-                               833D1C7324D8D53300E813DF /* WebKitAudioBufferSourceNode.h */,
-                               833D1C7524D8D53300E813DF /* WebKitAudioBufferSourceNode.idl */,
-                               83003E2B249997A80060AF94 /* WebKitAudioContext.cpp */,
-                               83B1A6FF249985D000FE5961 /* WebKitAudioContext.h */,
-                               83B1A701249985D000FE5961 /* WebKitAudioContext.idl */,
-                               8356F97E24D9F809006C3E41 /* WebKitAudioListener.h */,
-                               8356F97C24D9F808006C3E41 /* WebKitAudioListener.idl */,
-                               831B61712499A59900C07C79 /* WebKitAudioPannerNode.cpp */,
-                               831B61742499A59C00C07C79 /* WebKitAudioPannerNode.h */,
-                               831B616F2499A59800C07C79 /* WebKitAudioPannerNode.idl */,
-                               830EEAB724DB6A52009EFBCE /* WebKitDynamicsCompressorNode.h */,
-                               830EEAB924DB6A52009EFBCE /* WebKitDynamicsCompressorNode.idl */,
-                               831B61732499A59B00C07C79 /* WebKitOfflineAudioContext.cpp */,
-                               831B61752499A59D00C07C79 /* WebKitOfflineAudioContext.h */,
-                               831B61722499A59A00C07C79 /* WebKitOfflineAudioContext.idl */,
-                               8343D98124D0DEA9009ABD49 /* WebKitOscillatorNode.h */,
-                               8343D98324D0DEA9009ABD49 /* WebKitOscillatorNode.idl */,
</del><span class="cx">                   );
</span><span class="cx">                  path = webaudio;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -35803,12 +35762,7 @@
</span><span class="cx">                          A584FE301864CB8400843B10 /* WebInjectedScriptManager.h in Headers */,
</span><span class="cx">                          F48223111E3869B80066FC79 /* WebItemProviderPasteboard.h in Headers */,
</span><span class="cx">                          31C0FF220E4CEB6E007D6FE5 /* WebKitAnimationEvent.h in Headers */,
</span><del>-                               833D1C7624D8D54F00E813DF /* WebKitAudioBufferSourceNode.h in Headers */,
-                               83B1A702249985F000FE5961 /* WebKitAudioContext.h in Headers */,
-                               8356F97F24D9F818006C3E41 /* WebKitAudioListener.h in Headers */,
-                               831B61762499A5BB00C07C79 /* WebKitAudioPannerNode.h in Headers */,
</del><span class="cx">                           5DFEBAB718592B6D00C75BEB /* WebKitAvailability.h in Headers */,
</span><del>-                               830EEABA24DB6A64009EFBCE /* WebKitDynamicsCompressorNode.h in Headers */,
</del><span class="cx">                           2D0621451DA639BA00A7FB26 /* WebKitMediaKeyMessageEvent.h in Headers */,
</span><span class="cx">                          2D0621511DA63A9F00A7FB26 /* WebKitMediaKeyNeededEvent.h in Headers */,
</span><span class="cx">                          2D06214E1DA63A8E00A7FB26 /* WebKitMediaKeys.h in Headers */,
</span><span class="lines">@@ -35815,8 +35769,6 @@
</span><span class="cx">                          2D0621501DA63A9400A7FB26 /* WebKitMediaKeySession.h in Headers */,
</span><span class="cx">                          7C48A6D1191C9D6500026674 /* WebKitNamespace.h in Headers */,
</span><span class="cx">                          7A22732120C9FAFE00DB1DEF /* WebKitNSImageExtras.h in Headers */,
</span><del>-                               831B61772499A5BF00C07C79 /* WebKitOfflineAudioContext.h in Headers */,
-                               8343D98424D0DEE9009ABD49 /* WebKitOscillatorNode.h in Headers */,
</del><span class="cx">                           A5DEBDA416FB908700836FE0 /* WebKitPlaybackTargetAvailabilityEvent.h in Headers */,
</span><span class="cx">                          494BD7950F55C8EE00747828 /* WebKitPoint.h in Headers */,
</span><span class="cx">                          31C0FF250E4CEB6E007D6FE5 /* WebKitTransitionEvent.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp       2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/testing/Internals.cpp  2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -295,8 +295,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_AUDIO)
</span><del>-#include "BaseAudioContext.h"
-#include "WebKitAudioContext.h"
</del><ins>+#include "AudioContext.h"
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="lines">@@ -4384,18 +4383,11 @@
</span><span class="cx"> #endif // ENABLE(VIDEO)
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_AUDIO)
</span><del>-void Internals::setAudioContextRestrictions(const Variant<RefPtr<AudioContext>, RefPtr<WebKitAudioContext>>& contextVariant, StringView restrictionsString)
</del><ins>+void Internals::setAudioContextRestrictions(AudioContext& context, StringView restrictionsString)
</ins><span class="cx"> {
</span><del>-    RefPtr<AudioContext> context;
-    switchOn(contextVariant, [&](RefPtr<AudioContext> entry) {
-        context = entry;
-    }, [&](RefPtr<WebKitAudioContext> entry) {
-        context = entry;
-    });
</del><ins>+    auto restrictions = context.behaviorRestrictions();
+    context.removeBehaviorRestriction(restrictions);
</ins><span class="cx"> 
</span><del>-    auto restrictions = context->behaviorRestrictions();
-    context->removeBehaviorRestriction(restrictions);
-
</del><span class="cx">     restrictions = AudioContext::NoRestrictions;
</span><span class="cx"> 
</span><span class="cx">     for (StringView restrictionString : restrictionsString.split(',')) {
</span><span class="lines">@@ -4406,7 +4398,7 @@
</span><span class="cx">         if (equalLettersIgnoringASCIICase(restrictionString, "requirepageconsentforaudiostart"))
</span><span class="cx">             restrictions |= AudioContext::RequirePageConsentForAudioStartRestriction;
</span><span class="cx">     }
</span><del>-    context->addBehaviorRestriction(restrictions);
</del><ins>+    context.addBehaviorRestriction(restrictions);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Internals::useMockAudioDestinationCocoa()
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.h (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.h 2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/testing/Internals.h    2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -110,7 +110,6 @@
</span><span class="cx"> class VoidCallback;
</span><span class="cx"> class WebAnimation;
</span><span class="cx"> class WebGLRenderingContext;
</span><del>-class WebKitAudioContext;
</del><span class="cx"> class WindowProxy;
</span><span class="cx"> class XMLHttpRequest;
</span><span class="cx"> 
</span><span class="lines">@@ -714,7 +713,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_AUDIO)
</span><del>-    void setAudioContextRestrictions(const Variant<RefPtr<AudioContext>, RefPtr<WebKitAudioContext>>&, StringView restrictionsString);
</del><ins>+    void setAudioContextRestrictions(AudioContext&, StringView restrictionsString);
</ins><span class="cx">     void useMockAudioDestinationCocoa();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalsidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.idl (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.idl       2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebCore/testing/Internals.idl  2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -737,7 +737,7 @@
</span><span class="cx">     [Conditional=VIDEO] undefined setMediaSessionRestrictions(DOMString mediaType, DOMString restrictions);
</span><span class="cx">     [Conditional=VIDEO] DOMString mediaSessionRestrictions(DOMString mediaType);
</span><span class="cx">     [Conditional=VIDEO] undefined setMediaElementRestrictions(HTMLMediaElement element, DOMString restrictions);
</span><del>-    [Conditional=WEB_AUDIO] undefined setAudioContextRestrictions((AudioContext or WebKitAudioContext) context, DOMString restrictions);
</del><ins>+    [Conditional=WEB_AUDIO] undefined setAudioContextRestrictions(AudioContext context, DOMString restrictions);
</ins><span class="cx">     [Conditional=VIDEO] undefined postRemoteControlCommand(DOMString command, optional unrestricted float argument = 0);
</span><span class="cx">     [Conditional=VIDEO] undefined activeAudioRouteDidChange(boolean shouldPause);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitLegacywinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/win/ChangeLog (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/win/ChangeLog  2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebKitLegacy/win/ChangeLog     2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -1,5 +1,18 @@
</span><span class="cx"> 2021-05-14  Chris Dumez  <cdumez@apple.com>
</span><span class="cx"> 
</span><ins>+        Drop legacy / prefixed WebAudio implementation
+        https://bugs.webkit.org/show_bug.cgi?id=225832
+
+        Reviewed by Darin Adler.
+
+        Stop explicitly disabled with prefixed WebAudio implementation given that
+        it no longer exists.
+
+        * WebView.cpp:
+        (WebView::notifyPreferencesChanged):
+
+2021-05-14  Chris Dumez  <cdumez@apple.com>
+
</ins><span class="cx">         Drop "get" prefix from WTF::FileSystem's getFileModificationTime() / getFileCreationTime()
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=225812
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitLegacywinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKitLegacy/win/WebView.cpp (277529 => 277530)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKitLegacy/win/WebView.cpp        2021-05-15 03:34:17 UTC (rev 277529)
+++ trunk/Source/WebKitLegacy/win/WebView.cpp   2021-05-15 04:18:38 UTC (rev 277530)
</span><span class="lines">@@ -5534,7 +5534,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_AUDIO)
</span><span class="cx">     settings.setWebAudioEnabled(true);
</span><del>-    settings.setPrefixedWebAudioEnabled(false);
</del><span class="cx"> #endif // ENABLE(WEB_AUDIO)
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEBGL)
</span></span></pre>
</div>
</div>

</body>
</html>