Skip to content

Commit

Permalink
Remove duplicate AudioScheduledSourceNode start/stop/onended entries (#…
Browse files Browse the repository at this point in the history
…9599)

AudioBufferSourceNode is as old as the Web Audio API itself, and
originally had these members. OscillatorNode and ConstantSourceNode were
added later and also had these members. Later, AudioScheduledSourceNode
was introduced and the members were moved up to that prototype. Only an
overload start() method remained on AudioBufferSourceNode.

Summary of changes:
 - Remove the members no longer in spec/implementations.
 - Mark the members of AudioScheduledSourceNode as supported since the
   earliest time they were supported on AudioBufferSourceNode, which is
   the earliest of the concrete interfaces.
 - Mark AudioScheduledSourceNode as partially supported from the
   versions AudioBufferSourceNode were introduced until the
   AudioScheduledSourceNode interface was added.

Introduction of AudioScheduledSourceNode in each browser/engine:

Chromium 57:
https://bugs.chromium.org/p/chromium/issues/detail?id=661207
https://storage.googleapis.com/chromium-find-releases-static/009.html#00971f38908388728f49cd5127b9c6c6761d035f

Firefox 53:
https://bugzilla.mozilla.org/show_bug.cgi?id=1324568
mozilla/gecko-dev@bd93c7b

WebKit trunk 610.1.20, which was Safari 14:
https://bugs.webkit.org/show_bug.cgi?id=214381
https://trac.webkit.org/changeset/264538/webkit

There was an AudioSourceNode parent interface in WebKit, but it never
had any members.

These tests were used to find or confirm some version numbers:
https://staging-dot-mdn-bcd-collector.appspot.com/tests/api/AudioScheduledSourceNode

(It uses a AudioBufferSourceNode, as the oldest concrete type now
inheriting from AudioScheduledSourceNode.)

For start/stop, Chrome 23 and 24 were tested to confirm.

WebKit commit for that at trunk version 537.12:
https://trac.webkit.org/changeset/129260/webkit
https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/Configurations/Version.xcconfig?rev=129260

For onended, Chrome 29 and 30 were tested to confirm.

WebKit commit for that at trunk version 537.44:
https://trac.webkit.org/changeset/150905/webkit
https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/Configurations/Version.xcconfig?rev=150905

That also introduced support for the event itself.

Edge 13 was tested to confirm support for onended/start/stop, and it was
assumed to also be in Edge 12 since most of the Web Audio API was.

Firefox 24 and 25 tested were tested to confirm Firefox data.

Fixes #6656.
  • Loading branch information
foolip authored Mar 25, 2021
1 parent 1186b9e commit 507cd0d
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 413 deletions.
52 changes: 2 additions & 50 deletions api/AudioBufferSourceNode.json
Original file line number Diff line number Diff line change
Expand Up @@ -342,54 +342,6 @@
}
}
},
"onended": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/onended",
"support": {
"chrome": {
"version_added": "30"
},
"chrome_android": {
"version_added": "30"
},
"edge": {
"version_added": "12"
},
"firefox": {
"version_added": true
},
"firefox_android": {
"version_added": null
},
"ie": {
"version_added": false
},
"opera": {
"version_added": "17"
},
"opera_android": {
"version_added": "18"
},
"safari": {
"version_added": "6.1"
},
"safari_ios": {
"version_added": "7"
},
"samsunginternet_android": {
"version_added": "2.0"
},
"webview_android": {
"version_added": "4.4"
}
},
"status": {
"experimental": false,
"standard_track": true,
"deprecated": false
}
}
},
"playbackRate": {
"__compat": {
"mdn_url": "https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/playbackRate",
Expand Down Expand Up @@ -467,10 +419,10 @@
"version_added": "14"
},
"safari": {
"version_added": "6"
"version_added": "6.1"
},
"safari_ios": {
"version_added": "6"
"version_added": "7"
},
"samsunginternet_android": {
"version_added": "1.5"
Expand Down
130 changes: 81 additions & 49 deletions api/AudioScheduledSourceNode.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
},
{
"version_added": "14",
"version_removed": "58",
"alternative_name": "AudioSourceNode"
"version_removed": "57",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"chrome_android": [
Expand All @@ -20,21 +21,31 @@
},
{
"version_added": "18",
"version_removed": "58",
"alternative_name": "AudioSourceNode"
"version_removed": "57",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"edge": [
{
"version_added": "79"
},
{
"version_added": "12",
"version_removed": "79",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"edge": {
"version_added": "79"
},
"firefox": [
{
"version_added": "53"
},
{
"version_added": "25",
"version_removed": "53",
"alternative_name": "AudioSourceNode"
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"firefox_android": [
Expand All @@ -44,7 +55,8 @@
{
"version_added": "25",
"version_removed": "53",
"alternative_name": "AudioSourceNode"
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"ie": {
Expand All @@ -57,33 +69,52 @@
{
"version_added": "15",
"version_removed": "44",
"alternative_name": "AudioSourceNode"
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"opera_android": [
{
"version_added": "44"
"version_added": "43"
},
{
"version_added": "14",
"version_removed": "44",
"alternative_name": "AudioSourceNode"
"version_removed": "43",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"safari": [
{
"version_added": "14"
},
{
"version_added": "6",
"version_removed": "14",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"safari_ios": [
{
"version_added": "14"
},
{
"version_added": "6",
"version_removed": "14",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"safari": {
"version_added": "14"
},
"safari_ios": {
"version_added": "14"
},
"samsunginternet_android": [
{
"version_added": "7.0"
},
{
"alternative_name": "AudioSourceNode",
"version_added": "1.0",
"version_removed": "7.0"
"version_removed": "7.0",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
],
"webview_android": [
Expand All @@ -92,8 +123,9 @@
},
{
"version_added": "≤37",
"version_removed": "58",
"alternative_name": "AudioSourceNode"
"version_removed": "57",
"partial_implementation": true,
"notes": "The <code>AudioScheduledSourceNode</code> interface itself is not present, but some of its members are available on the <a href='https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode'><code>AudioBufferSourceNode</code></a>, <a href='https://developer.mozilla.org/docs/Web/API/ConstantSourceNode'><code>ConstantSourceNode</code></a> and <a href='https://developer.mozilla.org/docs/Web/API/OscillatorNode'><code>OscillatorNode</code></a> interfaces."
}
]
},
Expand All @@ -109,16 +141,16 @@
"mdn_url": "https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/ended_event",
"support": {
"chrome": {
"version_added": "14"
"version_added": "30"
},
"chrome_android": {
"version_added": "18"
"version_added": "30"
},
"edge": {
"version_added": "79"
"version_added": "12"
},
"firefox": {
"version_added": "53"
"version_added": "25"
},
"firefox_android": {
"version_added": "25"
Expand All @@ -127,19 +159,19 @@
"version_added": false
},
"opera": {
"version_added": "15"
"version_added": "17"
},
"opera_android": {
"version_added": "14"
"version_added": "18"
},
"safari": {
"version_added": "14"
"version_added": "7"
},
"safari_ios": {
"version_added": "14"
"version_added": "7"
},
"samsunginternet_android": {
"version_added": "1.0"
"version_added": "2.0"
},
"webview_android": {
"version_added": "≤37"
Expand All @@ -157,16 +189,16 @@
"mdn_url": "https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/onended",
"support": {
"chrome": {
"version_added": "14"
"version_added": "30"
},
"chrome_android": {
"version_added": "18"
"version_added": "30"
},
"edge": {
"version_added": "79"
"version_added": "12"
},
"firefox": {
"version_added": "53"
"version_added": "25"
},
"firefox_android": {
"version_added": "25"
Expand All @@ -175,19 +207,19 @@
"version_added": false
},
"opera": {
"version_added": "15"
"version_added": "17"
},
"opera_android": {
"version_added": "14"
"version_added": "18"
},
"safari": {
"version_added": "14"
"version_added": "7"
},
"safari_ios": {
"version_added": "14"
"version_added": "7"
},
"samsunginternet_android": {
"version_added": "1.0"
"version_added": "2.0"
},
"webview_android": {
"version_added": "≤37"
Expand All @@ -211,10 +243,10 @@
"version_added": "25"
},
"edge": {
"version_added": "79"
"version_added": "12"
},
"firefox": {
"version_added": "53"
"version_added": "25"
},
"firefox_android": {
"version_added": "25"
Expand All @@ -229,10 +261,10 @@
"version_added": "14"
},
"safari": {
"version_added": "14"
"version_added": "6.1"
},
"safari_ios": {
"version_added": "14"
"version_added": "7"
},
"samsunginternet_android": {
"version_added": "1.5"
Expand All @@ -259,10 +291,10 @@
"version_added": "25"
},
"edge": {
"version_added": "79"
"version_added": "12"
},
"firefox": {
"version_added": "53"
"version_added": "25"
},
"firefox_android": {
"version_added": "25"
Expand All @@ -277,10 +309,10 @@
"version_added": "14"
},
"safari": {
"version_added": "14"
"version_added": "6.1"
},
"safari_ios": {
"version_added": "14"
"version_added": "7"
},
"samsunginternet_android": {
"version_added": "1.5"
Expand Down
Loading

0 comments on commit 507cd0d

Please sign in to comment.