diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /dom/media/test/crashtests | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'dom/media/test/crashtests')
112 files changed, 2095 insertions, 0 deletions
diff --git a/dom/media/test/crashtests/0-timescale.html b/dom/media/test/crashtests/0-timescale.html new file mode 100644 index 000000000..db845096d --- /dev/null +++ b/dom/media/test/crashtests/0-timescale.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +</head> +<body> +<!-- This video file has a timescale of 0 in the mdhd atom --> +<video src="0-timescale.mp4" + autoplay + onerror="document.documentElement.className=undefined" + onloadedmetadata="this.src=''; document.documentElement.className=undefined"> +<!-- Note we reset 'src' to release decoder resources and cubeb streams to prevent OOM or OpenCubeb() failures. --> +</video> +</body> +</html> diff --git a/dom/media/test/crashtests/0-timescale.mp4 b/dom/media/test/crashtests/0-timescale.mp4 Binary files differnew file mode 100644 index 000000000..32df5dc5a --- /dev/null +++ b/dom/media/test/crashtests/0-timescale.mp4 diff --git a/dom/media/test/crashtests/1012609.html b/dom/media/test/crashtests/1012609.html new file mode 100644 index 000000000..1dad783a0 --- /dev/null +++ b/dom/media/test/crashtests/1012609.html @@ -0,0 +1,9 @@ +<script> +try{var r0=new AudioContext();}catch(e){} +try{var r32=r0.createOscillator();}catch(e){} +try{var r58=r0.createPeriodicWave(new Float32Array(1997),new Float32Array(1997));}catch(e){} +try{r32.start(0);}catch(e){} +try{r32.setPeriodicWave(r58);}catch(e){} +try{r32.frequency.value=-1;}catch(e){} +</script> + diff --git a/dom/media/test/crashtests/1015662.html b/dom/media/test/crashtests/1015662.html new file mode 100644 index 000000000..20407c807 --- /dev/null +++ b/dom/media/test/crashtests/1015662.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<body> +<video><track src="javascript:5"></track></video> +</body> diff --git a/dom/media/test/crashtests/1020205.html b/dom/media/test/crashtests/1020205.html new file mode 100644 index 000000000..e9efc4096 --- /dev/null +++ b/dom/media/test/crashtests/1020205.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.AudioContext(); +var source = context.createBufferSource(); +source.connect(context.destination); +source.playbackRate.value = 0.01; +source.buffer = context.createBuffer(2, 32, context.sampleRate); +source.start(0); + +setTimeout( + function() { + source.buffer = context.createBuffer(1, 10, context.sampleRate); + source.playbackRate.value = 1; + source.onended = + function() { + document.documentElement.removeAttribute("class"); + }; + }, 0); + +</script> +</html> diff --git a/dom/media/test/crashtests/1028458.html b/dom/media/test/crashtests/1028458.html new file mode 100644 index 000000000..c78ac046b --- /dev/null +++ b/dom/media/test/crashtests/1028458.html @@ -0,0 +1,23 @@ +<html class="reftest-wait"> +<audio id="testAudio" controls></audio> +<script type="text/javascript"> +navigator.mozGetUserMedia({audio: true, fake: true}, function(stream) { + stream.getAudioTracks()[0].enabled = false; + var testAudio = document.getElementById('testAudio'); + // Wait some time for good measure + var eventReceived = 0; + testAudio.addEventListener("timeupdate", function() { + if (++eventReceived == 3) { + document.querySelector("html").className = ""; + } + }) + testAudio.mozSrcObject = stream; + testAudio.play(); + }, function(err) { + // Don't go orange if we can't get an audio input stream, + // as this is not what we are trying to test and can happen on Windows. + document.querySelector("html").className = ""; + }); +</script> + +</html> diff --git a/dom/media/test/crashtests/1041466.html b/dom/media/test/crashtests/1041466.html new file mode 100644 index 000000000..0f064d186 --- /dev/null +++ b/dom/media/test/crashtests/1041466.html @@ -0,0 +1,21 @@ +<html> +<script> +try{var Context1= new (window.webkitAudioContext || window.AudioContext)()}catch(e){} +try{var Delay0=Context1.createDelay();}catch(e){} +try{var ScriptProcessor0=Context1.createScriptProcessor(512,26,7);}catch(e){} +try{var ChannelSplitter0=Context1.createChannelSplitter(91);}catch(e){} +try{var Gain1=Context1.createGain();}catch(e){} +try{var WaveShaper0=Context1.createWaveShaper();}catch(e){} +try{var Analyser1=Context1.createAnalyser();}catch(e){} +try{Gain1.connect(Delay0);}catch(e){} +try{Analyser1.connect(BiquadFilter0);}catch(e){} +try{Gain1.connect(Context1.destination);}catch(e){} +try{WaveShaper0.connect(ScriptProcessor0);}catch(e){} +try{ChannelSplitter0.connect(BiquadFilter1);}catch(e){} +try{Delay0.connect(Gain1);}catch(e){} +try{ScriptProcessor0.connect(Context1.destination);}catch(e){} +try{WaveShaper0.connect(Gain1);}catch(e){} +try{WaveShaper0.connect(ChannelSplitter0);}catch(e){} +try{ScriptProcessor0.connect(WaveShaper0);}catch(e){} +</script> +</html> diff --git a/dom/media/test/crashtests/1045650.html b/dom/media/test/crashtests/1045650.html new file mode 100644 index 000000000..32acd2ce7 --- /dev/null +++ b/dom/media/test/crashtests/1045650.html @@ -0,0 +1,18 @@ +<html><body><script> + +var r0=new AudioContext(); + +var splitter=r0.createChannelSplitter(); +var delay=r0.createDelay(); +var scriptp=r0.createScriptProcessor(); +var cmerger=r0.createChannelMerger(); +var gain=r0.createGain(); + +splitter.connect(delay,2); +delay.connect(scriptp); +scriptp.connect(cmerger); +cmerger.connect(splitter); +gain.connect(gain); +gain.connect(cmerger); + +</script></body></html> diff --git a/dom/media/test/crashtests/1080986.html b/dom/media/test/crashtests/1080986.html new file mode 100644 index 000000000..1de307516 --- /dev/null +++ b/dom/media/test/crashtests/1080986.html @@ -0,0 +1,3 @@ +<html> +<audio autoplay src="1080986.wav"></audio> +</html> diff --git a/dom/media/test/crashtests/1080986.wav b/dom/media/test/crashtests/1080986.wav Binary files differnew file mode 100644 index 000000000..b96c59b7e --- /dev/null +++ b/dom/media/test/crashtests/1080986.wav diff --git a/dom/media/test/crashtests/1122218.html b/dom/media/test/crashtests/1122218.html new file mode 100644 index 000000000..984487dd2 --- /dev/null +++ b/dom/media/test/crashtests/1122218.html @@ -0,0 +1,24 @@ +<html> +<head> +<script> +function boom() { + var r0=new AudioContext(); + + var cm=r0.createChannelMerger(20); + + var o1=r0.createOscillator(); + var o2=r0.createOscillator(); + + var pw=r0.createPeriodicWave(new Float32Array(4),new Float32Array(4)); + o2.setPeriodicWave(pw); + + o1.connect(cm); + cm.connect(o2.frequency); + + o1.start(); + o2.start(0.476); +} +</script> +</head> +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/1127188.html b/dom/media/test/crashtests/1127188.html new file mode 100644 index 000000000..650f07dd4 --- /dev/null +++ b/dom/media/test/crashtests/1127188.html @@ -0,0 +1,3 @@ +<script> + (new AudioContext).close(); +</script> diff --git a/dom/media/test/crashtests/1157994.html b/dom/media/test/crashtests/1157994.html new file mode 100644 index 000000000..2e3001302 --- /dev/null +++ b/dom/media/test/crashtests/1157994.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<script> + +function boom() +{ + var ac = new AudioContext(); + // first "suspended" -> "running" transition + ac.onstatechange = function() { + ac.onstatechange = null; + ac.suspend(); + ac.close(); + } +} + +</script> +</head> +<body onload="boom();"></body> +</html> + diff --git a/dom/media/test/crashtests/1158427.html b/dom/media/test/crashtests/1158427.html new file mode 100644 index 000000000..b544a942a --- /dev/null +++ b/dom/media/test/crashtests/1158427.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<script> + +function boom() +{ + dump("before capture\n"); + document.createElement("audio").mozCaptureStreamUntilEnded(); + dump("before context\n"); + new window.AudioContext(); + dump("before gc\n"); + SpecialPowers.forceCC(); + dump("after gc\n"); +} + +</script> +</head> +<body onload="boom();"></body> +</html> + diff --git a/dom/media/test/crashtests/1185176.html b/dom/media/test/crashtests/1185176.html new file mode 100644 index 000000000..d5e9b68a2 --- /dev/null +++ b/dom/media/test/crashtests/1185176.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +<script> + +function boom() +{ + var ac = new window.AudioContext(); + var oscillator = ac.createOscillator(); + oscillator.start(0); + oscillator.stop(0.1); + setTimeout(function() { + oscillator.channelCount = 1; + oscillator.channelCountMode = "explicit"; + oscillator.channelInterpretation = "speakers"; + document.documentElement.removeAttribute("class"); + }, 1000); +} + +</script> +</head> +<body onload="boom();"></body> +</html> + diff --git a/dom/media/test/crashtests/1185192.html b/dom/media/test/crashtests/1185192.html new file mode 100644 index 000000000..46fa311aa --- /dev/null +++ b/dom/media/test/crashtests/1185192.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> +<script> + +function boom() +{ + new Audio().mozCaptureStreamUntilEnded(); + var ac = new window.AudioContext(); + ac.resume(); + ac.close(); +} + +</script> +</head> +<body onload="boom();"></body> +</html> + diff --git a/dom/media/test/crashtests/1223670.html b/dom/media/test/crashtests/1223670.html new file mode 100644 index 000000000..94cad43e2 --- /dev/null +++ b/dom/media/test/crashtests/1223670.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +<script> + +function boom() +{ + + var ac = new window.AudioContext("publicnotification"); + + setTimeout(function() { + document.documentElement.removeAttribute("class"); + var htmlAudio = new Audio(); + var stream = htmlAudio.mozCaptureStreamUntilEnded(); + ac.createMediaStreamSource(stream); + }, 0); +} + +</script> +</head> +<body onload="boom();"> +</body> +</html> diff --git a/dom/media/test/crashtests/1228484.html b/dom/media/test/crashtests/1228484.html new file mode 100644 index 000000000..2b2e9b0f9 --- /dev/null +++ b/dom/media/test/crashtests/1228484.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html> +<head> +<script> + +var htmlAudio = new Audio(URL.createObjectURL(new window.MediaSource())); + +(new window.AudioContext("ringer")).createMediaElementSource(htmlAudio); +(new window.AudioContext("alarm")).createMediaElementSource(htmlAudio); + +</script> +</head> +</html> diff --git a/dom/media/test/crashtests/1236639.html b/dom/media/test/crashtests/1236639.html new file mode 100644 index 000000000..5c4634a4d --- /dev/null +++ b/dom/media/test/crashtests/1236639.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<html> +<head> + <title>Bug 1236639: Crash on audio playback due to invalid XING headers</title> +</head> +<body> +<audio autoplay src="1236639.mp3"></audio> +</body> +</html> diff --git a/dom/media/test/crashtests/1236639.mp3 b/dom/media/test/crashtests/1236639.mp3 Binary files differnew file mode 100644 index 000000000..8ef96e8cc --- /dev/null +++ b/dom/media/test/crashtests/1236639.mp3 diff --git a/dom/media/test/crashtests/1291702.html b/dom/media/test/crashtests/1291702.html new file mode 100644 index 000000000..facc52af7 --- /dev/null +++ b/dom/media/test/crashtests/1291702.html @@ -0,0 +1,72 @@ +<script> +Logger={}; Logger.JSError=function(e){}; +try { o0 = new Audio("media/audio/mono-uncompressed-8bit-44100hz.wav") } catch(e) { Logger.JSError(e); } +try { o1 = o0.mozCaptureStreamUntilEnded() } catch(e) { Logger.JSError(e); } +try { o2 = new window.AudioContext(); } catch(e) { Logger.JSError(e); } +try { o3 = o2.createBufferSource(); } catch(e) { Logger.JSError(e); } +try { o5 = o2.createChannelMerger(3); } catch(e) { Logger.JSError(e); } +try { o3.start(0) } catch(e) { Logger.JSError(e); } +try { o2.listener.setPosition(0.0417049336344248, 0.9932504594310304, 32) } catch(e) { Logger.JSError(e); } +try { o5.disconnect(0) } catch(e) { Logger.JSError(e); } +try { o0.mozGetMetadata() } catch(e) { Logger.JSError(e); } +try { o3.channelCount = 1; } catch(e) { Logger.JSError(e); } +try { o3.buffer = function anonymous() { +var buffer = o2.createBuffer(1, 512, o2.sampleRate);for(var c=0;c<1;c++) {var data = buffer.getChannelData(c);for(var i=0;i<512;i++) {data[i] = i % 512}}return buffer; +}(); } catch(e) { Logger.JSError(e); } +try { o3.loop = false; } catch(e) { Logger.JSError(e); } +try { o0.mozPreservesPitch = false; } catch(e) { Logger.JSError(e); } +try { o2.destination.channelCount = 1; } catch(e) { Logger.JSError(e); } +try { o3.loopStart = 8; } catch(e) { Logger.JSError(e); } +try { o3.playbackRate.value = 0.46271130895770884; } catch(e) { Logger.JSError(e); } +try { o2.listener.setVelocity(0.34781960219792546, 4, 2048) } catch(e) { Logger.JSError(e); } +try { o5.connect(o5, 0, 0) } catch(e) { Logger.JSError(e); } +try { o3.loopStart = -0.24696638021780326; } catch(e) { Logger.JSError(e); } +try { o0.mozSetup(1, 44100) } catch(e) { Logger.JSError(e); } +try { o3.buffer.copyToChannel(function anonymous() { +var buffer=new Float32Array(256);for(var i=0;i<256;i++){buffer[i]=i / 256}return buffer; +}(), 1, 2048, 64) } catch(e) { Logger.JSError(e); } +try { o3.loop = false; } catch(e) { Logger.JSError(e); } +try { setInterval(function anonymous() { +try { o0.pause() } catch(e) { Logger.JSError(e); } +}, 12.902067779658143) } catch(e) { Logger.JSError(e); } +try { o2.listener.setPosition(256, 256, 16) } catch(e) { Logger.JSError(e); } +try { o3.playbackRate.setValueCurveAtTime(function anonymous() { +var buffer=new Float32Array(4);for(var i=0;i<4;i++){buffer[i]=i / 4}return buffer; +}(), 2, 0.40792575814014437) } catch(e) { Logger.JSError(e); } +try { o3.playbackRate.value = 0.4997270553139334; } catch(e) { Logger.JSError(e); } +try { o0.loop = true; } catch(e) { Logger.JSError(e); } +try { o3.loopStart = 4; } catch(e) { Logger.JSError(e); } +try { setInterval(function anonymous() { +try { o3.buffer = function anonymous() { +var buffer = o2.createBuffer(1, 1, o2.sampleRate);for(var c=0;c<1;c++) {var data = buffer.getChannelData(c);for(var i=0;i<1;i++) {data[i] = Math.sin(Math.sin(i))}}return buffer; +}() } catch(e) { Logger.JSError(e); } +}, 54.32078602859342) } catch(e) { Logger.JSError(e); } +try { o3.connect(o2.destination); } catch(e) { Logger.JSError(e); } +try { o3.channelCountMode = 'max'; } catch(e) { Logger.JSError(e); } +try { setInterval(function anonymous() { +try { o3.channelCount = 1; } catch(e) { Logger.JSError(e); } +}, 55.448587039802966) } catch(e) { Logger.JSError(e); } +try { o3.playbackRate.cancelScheduledValues(0.7190983131805198) } catch(e) { Logger.JSError(e); } +try { o3.playbackRate.cancelScheduledValues(16) } catch(e) { Logger.JSError(e); } +try { o3.connect(o5, 0, 2) } catch(e) { Logger.JSError(e); } +try { o3.loopEnd = 0.5864771678080962; } catch(e) { Logger.JSError(e); } +try { o0.playbackRate = 0.2781783298771312; } catch(e) { Logger.JSError(e); } +try { o0.loop = false; } catch(e) { Logger.JSError(e); } +try { setInterval(function anonymous() { +try { o5.disconnect(0) } catch(e) { Logger.JSError(e); } +}, 29.75776777646425) } catch(e) { Logger.JSError(e); } +try { o3.playbackRate.setValueCurveAtTime(function anonymous() { +var buffer=new Float32Array(8);for(var i=0;i<8;i++){buffer[i]=8 % 8}return buffer; +}(), 0.4972710112336257, 64) } catch(e) { Logger.JSError(e); } +try { setInterval(function anonymous() { +try { o0.controls = false; } catch(e) { Logger.JSError(e); } +}, 22.550249570567694) } catch(e) { Logger.JSError(e); } +try { o2.listener.setOrientation(0.6531494410366634, 64, 0.5120918081402992, -64, 0.32912433155093446, 256) } catch(e) { Logger.JSError(e); } +try { o3.loop = true; } catch(e) { Logger.JSError(e); } +try { o3.connect(o5, 0, 0) } catch(e) { Logger.JSError(e); } +try { o3.buffer = function anonymous() { +var buffer = o2.createBuffer(1, 2048, 48000);for(var c=0;c<1;c++) {var data = buffer.getChannelData(c);for(var i=0;i<2048;i++) {data[i] = Math.sin(Math.sin(2048 * 0.2519529190035427))}}return buffer; +}(); } catch(e) { Logger.JSError(e); } +try { o3.disconnect(0) } catch(e) { Logger.JSError(e); } +</script> + diff --git a/dom/media/test/crashtests/1304948.html b/dom/media/test/crashtests/1304948.html new file mode 100644 index 000000000..667a13d06 --- /dev/null +++ b/dom/media/test/crashtests/1304948.html @@ -0,0 +1,33 @@ +<html class="reftest-wait"> +<head> + <title> Bug 1304948 : Crash if a texttrack remove a cue not belongs to it. </title> +</head> +<meta charset="utf-8"> +<script type="text/javascript"> + +window.onload = function() { + var a = document.createElementNS('http://www.w3.org/1999/xhtml', 'video'); + a.src = ""; + document.body.appendChild(a); + var b = a.addTextTrack('chapters', "AAAAAAAAAAAAAAAA", "de"); + var c = new VTTCue(0.6, 0.3, "AA"); + b.addCue(c); + var d = document.createElementNS('http://www.w3.org/1999/xhtml', 'video'); + var e = d.addTextTrack('chapters', "AAAA", "en-US"); + a.currentTime = 2; + a.play(); + try { + // This will queue a TimeMarchesOn task on mainthread, so use + // timer to wait the TimeMarchesOn crash. + e.removeCue(c); + } catch (e) { + if (e.name == "NotFoundError") { + setTimeout(function() { + document.documentElement.removeAttribute("class");}, 0); + } + } +}; + +</script> +</body> +</html> diff --git a/dom/media/test/crashtests/1319486.html b/dom/media/test/crashtests/1319486.html new file mode 100644 index 000000000..74bdb2147 --- /dev/null +++ b/dom/media/test/crashtests/1319486.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> + <title> Bug 1319486 : Crash if a texttrackcue added to different texttracks. </title> +</head> +<body> +<video id=v1></video> +<video id=v2></video> +</body> +<meta charset="utf-8"> +<script type="text/javascript"> + +addEventListener('DOMContentLoaded', function(){ + let cue,tt1,tt2; + v1.play(); + tt1 = v1.addTextTrack('metadata', "", ""); + v1.play(); + v1.currentTime = 8; + cue = new VTTCue(0, 0.5, ""); + tt1.addCue(cue); + tt2 = v2.addTextTrack('captions', "", ""); + tt2.addCue(cue); + tt2.removeCue(cue); + tt1.addCue(new VTTCue(0.7, 2, "")); +}); +</script> +</html> diff --git a/dom/media/test/crashtests/459439-1.html b/dom/media/test/crashtests/459439-1.html new file mode 100644 index 000000000..7bb0131d5 --- /dev/null +++ b/dom/media/test/crashtests/459439-1.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +<script type="text/javascript"> +var i = 0; +function boom() +{ + var div = document.getElementById("div"); + var audio = document.getElementById("audio"); + + audio.onload = null; + + div.textContent = "FAIL"; + audio.src += ""; + div.textContent = "PASS?"; + + ++i; + + setTimeout(done, 1); +} + +function done() +{ + // Note we reset 'src' to release decoder resources and cubeb streams to + // prevent OOM or OpenCubeb() failures. + var audio = document.getElementById("audio"); + audio.src = ""; + document.documentElement.removeAttribute("class"); +} +</script> +</head> +<body> +<audio id="audio" autoplay src="sound.ogg" oncanplaythrough="setTimeout(boom, 1);"></audio> +<div id="div"></div> +</body> +</html> diff --git a/dom/media/test/crashtests/466607-1.html b/dom/media/test/crashtests/466607-1.html new file mode 100644 index 000000000..e154223ef --- /dev/null +++ b/dom/media/test/crashtests/466607-1.html @@ -0,0 +1,14 @@ +<html> +<head> +<script type="text/javascript"> + +function boom() +{ + document.body.appendChild(document.createElementNS("bar", "audio")); + document.body.appendChild(document.createElementNS("bar", "video")); +} + +</script> +</head> +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/466945-1.html b/dom/media/test/crashtests/466945-1.html new file mode 100644 index 000000000..ac1ba29e3 --- /dev/null +++ b/dom/media/test/crashtests/466945-1.html @@ -0,0 +1,25 @@ +<html class="reftest-wait"> +<head> +<script type="text/javascript"> + +var s; + +function boom() +{ + s = document.createElement("span"); + s.innerHTML = "<video src='data:text/html,' autoplay='autoplay'><\/video>"; + document.body.appendChild(document.createElement("iframe")); + setTimeout(boom2, 0); +} + +function boom2() +{ + s.innerHTML = ""; + document.documentElement.removeAttribute("class"); +} + +</script> +</head> + +<body onload="setTimeout(boom, 0);"></body> +</html> diff --git a/dom/media/test/crashtests/468763-1.html b/dom/media/test/crashtests/468763-1.html new file mode 100644 index 000000000..d21e5bc38 --- /dev/null +++ b/dom/media/test/crashtests/468763-1.html @@ -0,0 +1 @@ +<html><head></head><body><video src="nosuchprotocol:"></video></body></html>
\ No newline at end of file diff --git a/dom/media/test/crashtests/474744-1.html b/dom/media/test/crashtests/474744-1.html new file mode 100644 index 000000000..8a7c70cf0 --- /dev/null +++ b/dom/media/test/crashtests/474744-1.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> +<head> +<script type="text/javascript"> + +function boom() +{ + document.body.innerHTML += "<video src='aim:yaz'><\/video>"; +} + +</script> +</head> +<body onload="boom();"> +</body> +</html> diff --git a/dom/media/test/crashtests/481136-1.html b/dom/media/test/crashtests/481136-1.html new file mode 100644 index 000000000..bd264058d --- /dev/null +++ b/dom/media/test/crashtests/481136-1.html @@ -0,0 +1,3 @@ +<html> +<div><object data='sound.ogg'></div> +</html> diff --git a/dom/media/test/crashtests/492286-1.xhtml b/dom/media/test/crashtests/492286-1.xhtml new file mode 100644 index 000000000..627ac3872 --- /dev/null +++ b/dom/media/test/crashtests/492286-1.xhtml @@ -0,0 +1 @@ +<source xmlns="http://www.w3.org/1999/xhtml"/>
\ No newline at end of file diff --git a/dom/media/test/crashtests/493915-1.html b/dom/media/test/crashtests/493915-1.html new file mode 100644 index 000000000..2a6ae9bd6 --- /dev/null +++ b/dom/media/test/crashtests/493915-1.html @@ -0,0 +1,18 @@ +<html> +<head> +<script type="text/javascript"> + +function boom() +{ + s = document.createElement("span"); + a = document.createElement("audio"); + a['src'] = "javascript:4"; + a['loopend'] = 3; + s.appendChild(a); +} + +</script> +</head> + +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/495794-1.html b/dom/media/test/crashtests/495794-1.html new file mode 100644 index 000000000..2db69206a --- /dev/null +++ b/dom/media/test/crashtests/495794-1.html @@ -0,0 +1,8 @@ +<!DOCTYPE html> +<html class="reftest-wait"> + <body> + <audio src="495794-1.ogg" autoplay onended="this.src=''; document.documentElement.className=undefined"></audio> + <!-- Note we reset 'src' to release decoder resources and cubeb streams to prevent OOM or OpenCubeb() failures. --> + </body> +</html> + diff --git a/dom/media/test/crashtests/495794-1.ogg b/dom/media/test/crashtests/495794-1.ogg Binary files differnew file mode 100644 index 000000000..1c19a6406 --- /dev/null +++ b/dom/media/test/crashtests/495794-1.ogg diff --git a/dom/media/test/crashtests/576612-1.html b/dom/media/test/crashtests/576612-1.html new file mode 100644 index 000000000..04f993e78 --- /dev/null +++ b/dom/media/test/crashtests/576612-1.html @@ -0,0 +1,15 @@ +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<script> +function boom() +{ + + var v = document.getElementById("v"); + v.src = "data:text/plain,_"; + document.documentElement.appendChild(v); + +} +</script> +</head> +<body onload="boom();"><video id="v" src="data:video/ogg;codecs="theora,vorbis",1"></video></body> +</html> diff --git a/dom/media/test/crashtests/691096-1.html b/dom/media/test/crashtests/691096-1.html new file mode 100644 index 000000000..3c3ebfc12 --- /dev/null +++ b/dom/media/test/crashtests/691096-1.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +<script> +var ITERATIONS = 200; + +function stoptest (evt) +{ + if (evt) { + // Note we reset 'src' to release decoder resources and cubeb streams to + // prevent OOM or OpenCubeb() failures. + evt.target.src = ""; + } + document.documentElement.removeAttribute("class"); +} + +function boom() +{ + for (var i = 0; i < ITERATIONS; ++i) { + a = document.createElementNS("http://www.w3.org/1999/xhtml", "audio"); + a.addEventListener("loadedmetadata", stoptest); + a.setAttributeNS(null, "autoplay", ""); + a.setAttributeNS(null, "src", "sound.ogg"); + } + setTimeout(stoptest, 250); +} + +</script> +</head> +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/752784-1.html b/dom/media/test/crashtests/752784-1.html new file mode 100644 index 000000000..4644eeb89 --- /dev/null +++ b/dom/media/test/crashtests/752784-1.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> +<head> +<script> +function boom() +{ + document.getElementById("a").mozCaptureStream(); +} +</script> +</head> + +<body onload="boom();"> +<audio id="a" src="sound.ogg"> +</body> +</html> diff --git a/dom/media/test/crashtests/789075-1.html b/dom/media/test/crashtests/789075-1.html new file mode 100644 index 000000000..6f857573a --- /dev/null +++ b/dom/media/test/crashtests/789075-1.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +</head> +<body> +<video src="789075.webm" preload="metadata" onloadedmetadata="this.src=''; document.documentElement.className=undefined"></video> +<!-- Note we reset 'src' to release decoder resources and cubeb streams to prevent OOM or OpenCubeb() failures. --> +</body> +</html> diff --git a/dom/media/test/crashtests/789075.webm b/dom/media/test/crashtests/789075.webm Binary files differnew file mode 100644 index 000000000..602e53fca --- /dev/null +++ b/dom/media/test/crashtests/789075.webm diff --git a/dom/media/test/crashtests/795892-1.html b/dom/media/test/crashtests/795892-1.html new file mode 100644 index 000000000..d73cea7f2 --- /dev/null +++ b/dom/media/test/crashtests/795892-1.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +<script> +function boom() +{ + var a = document.getElementById("a"); + a.play(); + a.onplaying = function () { + a.onplaying = null; + // Note we reset 'src' to release decoder resources and cubeb streams to + // prevent OOM or OpenCubeb() failures. + a.src = ""; + document.documentElement.className = ""; + } +} +</script> +</head> + +<body> +<video id="a" src="cors.webm" crossorigin preload="metadata" onloadedmetadata="boom();"> +</body> +</html> diff --git a/dom/media/test/crashtests/844563.html b/dom/media/test/crashtests/844563.html new file mode 100644 index 000000000..7f9365511 --- /dev/null +++ b/dom/media/test/crashtests/844563.html @@ -0,0 +1,5 @@ +<script> +var a = document.createElementNS("http://www.w3.org/1999/xhtml", "audio"); +a.mozPreservesPitch = a; +</script> + diff --git a/dom/media/test/crashtests/846612.html b/dom/media/test/crashtests/846612.html new file mode 100644 index 000000000..070c37538 --- /dev/null +++ b/dom/media/test/crashtests/846612.html @@ -0,0 +1,8 @@ +<script> +document.addEventListener("DOMContentLoaded", function() { + var a = document.querySelector("audio"); + a.playbackRate = 2; + a.play(); +}); +</script> +<audio src="495794-1.ogg"></audio> diff --git a/dom/media/test/crashtests/852838.html b/dom/media/test/crashtests/852838.html new file mode 100644 index 000000000..0bea29351 --- /dev/null +++ b/dom/media/test/crashtests/852838.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <script> + var o0 = new window.AudioContext(); + var o1 = o0.createBuffer(536870912, 1, 8192); + </script> + </head> + <body> + </body> +</html> diff --git a/dom/media/test/crashtests/865537-1.html b/dom/media/test/crashtests/865537-1.html new file mode 100644 index 000000000..4065eb360 --- /dev/null +++ b/dom/media/test/crashtests/865537-1.html @@ -0,0 +1,13 @@ +<!DOCTYPE HTML> +<html> +<body onload="doTest()"> +<base href="../unknown"> +<div id="test3"></div> +<video id="test4"><source src="white.webm"></video> +<script> +function doTest() { + test3.appendChild(test4); +} +</script> +</body> +</html> diff --git a/dom/media/test/crashtests/868504.html b/dom/media/test/crashtests/868504.html new file mode 100644 index 000000000..94090c1c0 --- /dev/null +++ b/dom/media/test/crashtests/868504.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> +<head> +<script> + +function boom() +{ + new AudioContext().createBufferSource().playbackRate.linearRampToValueAtTime(0, -1); +} + +</script> +</head> +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/874869.html b/dom/media/test/crashtests/874869.html new file mode 100644 index 000000000..1fe3dbd2f --- /dev/null +++ b/dom/media/test/crashtests/874869.html @@ -0,0 +1,15 @@ +<script> +var Context0= new AudioContext() +var Panner0=Context0.createPanner(); +var BufferSource3=Context0.createBufferSource(); +Panner0.channelCount=0; +BufferSource3.connect(Panner0); +BufferSource3.buffer=function(){ + var length=1; + var Buffer=Context0.createBuffer(1,length,'44200'); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = 255;}; + return Buffer; +}(); + +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/874915.html b/dom/media/test/crashtests/874915.html new file mode 100644 index 000000000..59218b3da --- /dev/null +++ b/dom/media/test/crashtests/874915.html @@ -0,0 +1,24 @@ +<script> +var Context0= new AudioContext() +var BufferSource6=Context0.createBufferSource(); + +setInterval(function(){ +BufferSource6.buffer=function(){ + var length=11283; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(624))}; + return Buffer; +}(); +},0) + +BufferSource6.start(0.15831333969254047,0.23571860056836158,0.529235512483865); + +BufferSource6.buffer=function(){ + var length=48517; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(365))}; + return Buffer; +}(); +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/874934.html b/dom/media/test/crashtests/874934.html new file mode 100644 index 000000000..350ce2810 --- /dev/null +++ b/dom/media/test/crashtests/874934.html @@ -0,0 +1,23 @@ +<script> +var Context0= new AudioContext() +var BufferSource0=Context0.createBufferSource(); +BufferSource0.start(0.01932738965842873,0.33345631847623736,0.3893404237460345); +BufferSource0.buffer=function(){ + var length=35887; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(0.39765272522345185))}; + return Buffer; +}(); + +BufferSource0.buffer=function(){ + var length=15952; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(85))}; + return Buffer; +}(); + +BufferSource0.playbackRate.value=20.401213286832185; + +</script> diff --git a/dom/media/test/crashtests/874952.html b/dom/media/test/crashtests/874952.html new file mode 100644 index 000000000..a9a398fdb --- /dev/null +++ b/dom/media/test/crashtests/874952.html @@ -0,0 +1,11 @@ +<script> +var Context0= new AudioContext() +var ChannelSplitter0=Context0.createChannelSplitter(); +var BiquadFilter0=Context0.createBiquadFilter(); +var WaveShaper0=Context0.createWaveShaper(); + +ChannelSplitter0.connect(BiquadFilter0,3,0); +ChannelSplitter0.connect(WaveShaper0); +BiquadFilter0.disconnect(); +WaveShaper0.connect(ChannelSplitter0); +</script> diff --git a/dom/media/test/crashtests/875144.html b/dom/media/test/crashtests/875144.html new file mode 100644 index 000000000..bf5d0d086 --- /dev/null +++ b/dom/media/test/crashtests/875144.html @@ -0,0 +1,81 @@ +<script> +Logger = {} +Logger.error = function(e) {} +Logger.comment = function(e) {} + +try { o0 = document.createElement('audio'); } catch(e) { Logger.error(Logger.comment(e)); } +try { (document.body || document.documentElement).appendChild(o0); } catch(e) { Logger.error(Logger.comment(e)); } +try { o1 = new AudioContext(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o2 = o1.createGain(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3 = o1.createBufferSource(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.buffer = function() { o4 = o1.createBuffer(1, 3, 52970); +o5 = o4.getChannelData(0); +for(var i=0; i<3; ++i) { +o5[i] = Math.sin(i * 63); +} +return o4; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.buffer = function() { o6 = o1.createBuffer(1, 15, 41218); +o7 = o6.getChannelData(0); +for(var i=0; i<15; ++i) { +o7[i] = Math.sin(i * 0); +} +return o6; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.buffer = function() { o8 = o1.createBuffer(1, 0, 49074); +o9 = o8.getChannelData(0); +for(var i=0; i<0; ++i) { +o9[i] = Math.sin(i * 0); +} +return o8; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.buffer = function() { o10 = o1.createBuffer(1, 31, 86527); +o11 = o10.getChannelData(0); +for(var i=0; i<31; ++i) { +o11[i] = Math.sin(i * 127); +} +return o10; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.stop(-1) } catch(e) { Logger.error(Logger.comment(e)); } +/* [Exception... "An attempt was made to use an object that is not, or is no longer, usable" code: "11" nsresult: "0x8053000b (InvalidStateError)" location: "file:///Users/cdiehl/dev/projects/peach/Peach/Utilities/JS/undefined.js Line: 602"] */ +try { o3.channelCountMode = 'explicit'; } catch(e) { Logger.error(Logger.comment(e)); } +try { o12 = o1.createBiquadFilter(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.buffer = function() { o13 = o1.createBuffer(1, 63, 28347); +o14 = o13.getChannelData(0); +for(var i=0; i<63; ++i) { +o14[i] = Math.sin(i * 15); +} +return o13; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o12.channelCount = 1; } catch(e) { Logger.error(Logger.comment(e)); } +try { o12.connect(GainNode, 65536, 0) } catch(e) { Logger.error(Logger.comment(e)); } +/* TypeError: Value does not implement interface AudioNode. */ +try { o3.buffer = function() { o15 = o1.createBuffer(1, 1, 72540); +o16 = o15.getChannelData(0); +for(var i=0; i<1; ++i) { +o16[i] = Math.sin(i * 7); +} +return o15; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o12.getFrequencyResponse(new Float32Array(7), new Float32Array(127), new Float32Array(7)) } catch(e) { Logger.error(Logger.comment(e)); } +try { o12.getFrequencyResponse(new Float32Array(15), new Float32Array(127), new Float32Array(7)) } catch(e) { Logger.error(Logger.comment(e)); } +try { o17 = document.createElement('audio'); } catch(e) { Logger.error(Logger.comment(e)); } +try { (document.body || document.documentElement).appendChild(o0); } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.buffer = function() { o18 = o1.createBuffer(1, 7, 91261); +o19 = o18.getChannelData(0); +for(var i=0; i<7; ++i) { +o19[i] = Math.sin(i * 7); +} +return o18; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +try { o12.getFrequencyResponse(new Float32Array(31), new Float32Array(31), new Float32Array(127)) } catch(e) { Logger.error(Logger.comment(e)); } +try { o20 = o1.createChannelSplitter(1, 2, 4, 16, 32); } catch(e) { Logger.error(Logger.comment(e)); } +try { o12.channelCountMode = 'explicit'; } catch(e) { Logger.error(Logger.comment(e)); } +try { o3.buffer = function() { o21 = o1.createBuffer(1, 0, 14451); +o22 = o21.getChannelData(0); +for(var i=0; i<0; ++i) { +o22[i] = Math.sin(i * 63); +} +return o21; +}(); } catch(e) { Logger.error(Logger.comment(e)); } +</script> diff --git a/dom/media/test/crashtests/875596.html b/dom/media/test/crashtests/875596.html new file mode 100644 index 000000000..7bac09dab --- /dev/null +++ b/dom/media/test/crashtests/875596.html @@ -0,0 +1,12 @@ +<script> +try { o1 = new AudioContext(); } catch(e) { } +try { o6 = o1.createGain(); } catch(e) { } +try { o8 = o1.createBufferSource(); } catch(e) { } +try { o6.gain.setValueCurveAtTime(new Float32Array(7), 0, 0) } catch(e) { } +try { o8.connect(o6, 0, 0) } catch(e) { } +try { o8.buffer = function() { + o19 = o1.createBuffer(1, 1, 76309); + for(var i=0; i<1; ++i) { } + return o19; +}(); } catch(e) { } +</script> diff --git a/dom/media/test/crashtests/875911.html b/dom/media/test/crashtests/875911.html new file mode 100644 index 000000000..fbc52642b --- /dev/null +++ b/dom/media/test/crashtests/875911.html @@ -0,0 +1,3 @@ +<script> + new OfflineAudioContext(1, 10, 48000); +</script> diff --git a/dom/media/test/crashtests/876024-1.html b/dom/media/test/crashtests/876024-1.html new file mode 100644 index 000000000..5502d8e42 --- /dev/null +++ b/dom/media/test/crashtests/876024-1.html @@ -0,0 +1,5 @@ +<script> +o1 = new window.AudioContext(2, 8, 44100); +o4 = o1.createBiquadFilter(); +o4.detune.setValueAtTime(0.0843, 1.7976931348623157e+308); +</script> diff --git a/dom/media/test/crashtests/876024-2.html b/dom/media/test/crashtests/876024-2.html new file mode 100644 index 000000000..4b9beb745 --- /dev/null +++ b/dom/media/test/crashtests/876024-2.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<script> + +function boom() +{ + var bufferSource = new AudioContext().createScriptProcessor().context.createBufferSource(); + bufferSource.start(0, 0, 0); + bufferSource.stop(562949953421313); +} + +</script></head> + +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/876118.html b/dom/media/test/crashtests/876118.html new file mode 100644 index 000000000..bc0630350 --- /dev/null +++ b/dom/media/test/crashtests/876118.html @@ -0,0 +1,16 @@ +<script> +var Context0= new AudioContext() +var BufferSource7=Context0.createBufferSource(); + +BufferSource7.connect(Context0.destination); +BufferSource7.buffer=function(){ + var length=7; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0);for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(-1))}; + return Buffer; +}(); + + +Context0.destination.channelCountMode="explicit"; +Context0.destination.channelCount=519910189000000; +</script> diff --git a/dom/media/test/crashtests/876207.html b/dom/media/test/crashtests/876207.html new file mode 100644 index 000000000..7bfcb096b --- /dev/null +++ b/dom/media/test/crashtests/876207.html @@ -0,0 +1,30 @@ +<script> +try { o1 = new window.OfflineAudioContext(1, 10, 44100); } catch(e) { } +try { o2 = o1.createChannelSplitter(1); } catch(e) { } +try { o3 = o1.createAnalyser(); } catch(e) { } +try { o4 = o1.createWaveShaper(); } catch(e) { } +try { o5 = o1.createChannelSplitter(6); } catch(e) { } +try { o6 = o1.createAnalyser(); } catch(e) { } +try { o7 = o1.createBufferSource(); } catch(e) { } +try { o7.connect(o1.destination); } catch(e) { } +try { o7.buffer = function() { +o8 = o1.createBuffer(1, 3, o1.sampleRate); +o9 = o8.getChannelData(0); +for(var i = 0; i < 3; ++i) { +o9[i] = Math.sin(i * 127); +} +return o8; +}() +; } catch(e) { } +try { o7.playbackRate.cancelScheduledValues(0) } catch(e) { } +try { o7.channelInterpretation = 'speakers'; } catch(e) { } +try { o1.destination.channelInterpretation = 'speakers'; } catch(e) { } +try { o5.connect(o1.destination, 1, 1) } catch(e) { } +try { o1.listener.setOrientation(0, 1073741824, 1073741824, 4194304, 1, 0) } catch(e) { } +try { o4.curve = new Float32Array(127); } catch(e) { } +try { o6.getByteFrequencyData(new Uint8Array(12)) } catch(e) { } +try { o6.disconnect() } catch(e) { } +try { o1.destination.channelCount = 33554432; } catch(e) { } +try { o7.playbackRate.setTargetAtTime(0, 8388608, 1) } catch(e) { } +try { o6.getByteTimeDomainData(new Uint8Array(12)) } catch(e) { } +</script> diff --git a/dom/media/test/crashtests/876215.html b/dom/media/test/crashtests/876215.html new file mode 100644 index 000000000..07135e362 --- /dev/null +++ b/dom/media/test/crashtests/876215.html @@ -0,0 +1,14 @@ +<script> +try { o1 = new window.OfflineAudioContext(1, 10, 44100); } catch(e) { } +try { o6 = o1.createScriptProcessor(0, 0, 2); } catch(e) { } +try { o8 = o1.createBufferSource(); } catch(e) { } +try { o8.connect(o1.destination); } catch(e) { } +try { o8.connect(o6) } catch(e) { } +try { o3.disconnect() } catch(e) { } +try { o8.buffer = function() { +o21 = o1.createBuffer(1, 3, o1.sampleRate); +o22 = o21.getChannelData(0); +return o21; +}() +; } catch(e) { } +</script> diff --git a/dom/media/test/crashtests/876249.html b/dom/media/test/crashtests/876249.html new file mode 100644 index 000000000..6f72b40bc --- /dev/null +++ b/dom/media/test/crashtests/876249.html @@ -0,0 +1,27 @@ +<script> +var Context0= new AudioContext() +var BufferSource0=Context0.createBufferSource(); +var BiquadFilter0=Context0.createBiquadFilter(); +BufferSource0.start(0,0.6167310480959713,0.7142638498917222); +BiquadFilter0.connect(Context0.destination); +BufferSource0.buffer=function(){ + var length=86333; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(-1))}; + return Buffer; +}(); + +BufferSource0.connect(BiquadFilter0); + +BufferSource0.buffer=function(){ + var length=21989; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(0))}; + return Buffer; +}(); + +BufferSource0.stop(0.04184641852043569); + +</script> diff --git a/dom/media/test/crashtests/876252.html b/dom/media/test/crashtests/876252.html new file mode 100644 index 000000000..cb9cb63ed --- /dev/null +++ b/dom/media/test/crashtests/876252.html @@ -0,0 +1,23 @@ +<script> +var Context0= new AudioContext() +var BufferSource4=Context0.createBufferSource(); +BufferSource4.start(0.05386466556228697,0.397192713804543,0.48810303467325866); + +BufferSource4.buffer=function(){ + var length=109076; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(370))}; + return Buffer; +}(); + +BufferSource4.buffer=function(){ + var length=19339; + var Buffer=Context0.createBuffer(1,length,53362); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(-0.16235407581552863))}; + return Buffer; +}(); + +BufferSource4.stop(0.46482366253621876); +</script> diff --git a/dom/media/test/crashtests/876834.html b/dom/media/test/crashtests/876834.html new file mode 100644 index 000000000..f4ca6ee55 --- /dev/null +++ b/dom/media/test/crashtests/876834.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<script> +new OfflineAudioContext(0, 0, 3229622); +</script> diff --git a/dom/media/test/crashtests/877527.html b/dom/media/test/crashtests/877527.html new file mode 100644 index 000000000..c639d501b --- /dev/null +++ b/dom/media/test/crashtests/877527.html @@ -0,0 +1,37 @@ +<script> +try { o1 = new window.AudioContext(2, 5, 44100); } catch(e) { } +try { o2 = o1.createChannelMerger(1); } catch(e) { } +try { o3 = o1.createDelay(10); } catch(e) { } +try { o4 = o1.createBuffer(2, 2048, 8000); } catch(e) { } +try { o5 = o1.createPanner(); } catch(e) { } +try { o6 = o1.createBufferSource(); } catch(e) { } +try { o7 = (function() { +var buf = o1.createBuffer(1, 50000, o1.sampleRate); +for(var j=0; j<1; ++j) { +for(var i=0; i<50000; ++i) { buf.getChannelData(j)[i] = Math.sin(i * (9.8));} +} +return buf; +})(); } catch(e) { } +try { o6.buffer = o7; } catch(e) { } +try { o6.connect(o5); } catch(e) { } +try { o5.connect(o1.destination); } catch(e) { } +try { o1.listener.speedOfSound = 0.0000019073486328125; } catch(e) { } +try { o6.loop = true; } catch(e) { } +try { o8 = (function() { +var buf = o1.createBuffer(2, 1000, o1.sampleRate); +for(var j=0; j<2; ++j) { +for(var i=0; i<1000; ++i) { buf.getChannelData(j)[i] = Math.sin(i * (1));} +} +return buf; +})(); } catch(e) { } +try { o6.buffer = o7; } catch(e) { } +try { o6.connect(o5); } catch(e) { } +try { o5.connect(o1.destination); } catch(e) { } +try { o6.loopEnd = 1.4901161193847656e-8; } catch(e) { } +try { o6.connect(o1.destination); } catch(e) { } +try { o6.buffer = o8; } catch(e) { } +try { o5.setPosition(0.36, o1.destination.context.destination.channelCountMode, o1.destination.context.destination.channelInterpretation) } catch(e) { } +try { o2.channelCountMode = 'explicit'; } catch(e) { } +try { o1.listener.speedOfSound = 4; } catch(e) { } +try { o1.startRendering(); } catch(e) { } +</script> diff --git a/dom/media/test/crashtests/877820.html b/dom/media/test/crashtests/877820.html new file mode 100644 index 000000000..6d65c1e9d --- /dev/null +++ b/dom/media/test/crashtests/877820.html @@ -0,0 +1,4 @@ +<script> +o1 = new window.OfflineAudioContext(2, 5, 0.39); +window.location.reload(); +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/878014.html b/dom/media/test/crashtests/878014.html new file mode 100644 index 000000000..4a0ca6dce --- /dev/null +++ b/dom/media/test/crashtests/878014.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +try { o2 = new window.AudioContext(1, 15, 44100); } catch(e) { } +try { o5 = o2.createDelay(0.1); } catch(e) { } +try { o6 = o2.createPanner(); } catch(e) { } +try { o8 = o2.createBufferSource(); } catch(e) { } +try { o9 = (function() { +var buf = o2.createBuffer(1, 12134, o2.sampleRate); +for(var j=0; j<1; ++j) { +for(var i=0; i<12134; ++i) { buf.getChannelData(j)[i] = Math.sin(i * (-127));} +} +return buf; +})(); } catch(e) { } +try { o8.buffer = o9; } catch(e) { } +try { o8.connect(o6); } catch(e) { } +try { o6.connect(o5, 0, 0) } catch(e) { } +try { o8.buffer = (function() { +var buf = o2.createBuffer(1, 5409, o2.sampleRate); +for(var j=0; j<1; ++j) { +for(var i=0; i<5409; ++i) { buf.getChannelData(j)[i] = Math.sin(i * (-1));} +} +return buf; +})(); } catch(e) { } +setTimeout(function() { try { o5.delayTime.setValueAtTime(0.78, 121560862.56366833); } catch(e) { } setTimeout(done, 0); },128) +try { o5.delayTime.value = 0.4283; } catch(e) { } + +function done() { + document.documentElement.removeAttribute("class"); +} +</script> diff --git a/dom/media/test/crashtests/878328.html b/dom/media/test/crashtests/878328.html new file mode 100644 index 000000000..ec7b39871 --- /dev/null +++ b/dom/media/test/crashtests/878328.html @@ -0,0 +1,5 @@ +<script> +o1 = new window.AudioContext(2, 7, 44100); +o5 = o1.createDelay(1); +o5.delayTime.setValueCurveAtTime(new Float32Array(3), 1.7976931348623157e+308, 0.64); +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/878407.html b/dom/media/test/crashtests/878407.html new file mode 100644 index 000000000..ae2918dc8 --- /dev/null +++ b/dom/media/test/crashtests/878407.html @@ -0,0 +1,11 @@ +<script> +o1 = new window.AudioContext(); +o4 = o1.createDelay(0.4468); +o6 = o1.createPanner(); +o7 = (function() {var buf = o1.createBuffer(1, 1000, o1.sampleRate);for(var j=0; j<1; ++j) {for(var i=0; i<1000; ++i) {buf.getChannelData(j)[i] = Math.sin(i * (-15));}}return buf;})(); +o8 = o1.createBufferSource(); +o8.buffer = o7; +o8.connect(o6); +o6.connect(o4) +o4.delayTime.setValueAtTime(0.6019893103749466289898, 0.26) +</script> diff --git a/dom/media/test/crashtests/878478.html b/dom/media/test/crashtests/878478.html new file mode 100644 index 000000000..89a47ddb5 --- /dev/null +++ b/dom/media/test/crashtests/878478.html @@ -0,0 +1,30 @@ +<script> +var Context0= new AudioContext() +var BufferSource0=Context0.createBufferSource(); + +BufferSource0.loop=true; + +BufferSource0.buffer=function(){ + var channels=3; + var length=97252; + var Buffer=Context0.createBuffer(channels,length,Context0.sampleRate); + for(var y=0;y<channels;y++){ + var bufferData= Buffer.getChannelData(y); + for (var i = 0; i < length; ++i) { bufferData[i] = 1;} + }; + return Buffer; +}(); + +BufferSource0.playbackRate.cancelScheduledValues(0.4); + +BufferSource0.loopEnd=5e-324; + +BufferSource0.buffer=function(){ + var length=26590; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = 1}; + return Buffer; +}(); + +</script> diff --git a/dom/media/test/crashtests/880129.html b/dom/media/test/crashtests/880129.html new file mode 100644 index 000000000..775e9d80b --- /dev/null +++ b/dom/media/test/crashtests/880129.html @@ -0,0 +1,9 @@ +<script> +try { o1 = new window.AudioContext(3, 2, 44100); } catch(e) { } +try { o6 = o1.createBufferSource(); } catch(e) { } +try { o15 = o1.createAnalyser(); } catch(e) { } +try { o15.fftSize = 32; } catch(e) { } +try { o6.connect(o15,0,0) } catch(e) { } +try { o27 = o1.createPanner(); } catch(e) { } +try { o6.buffer = function(){var buffer = o1.createBuffer(2, 1148, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<1148; i++) {buffer.getChannelData(c)[i] = 0;}}return buffer;}() } catch(e) { } +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/880202.html b/dom/media/test/crashtests/880202.html new file mode 100644 index 000000000..dc0fade9d --- /dev/null +++ b/dom/media/test/crashtests/880202.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var Context0= new window.OfflineAudioContext(15,12119,44100) +var BufferSource1=Context0.createBufferSource(); +var Gain0=Context0.createGain(); +var Panner0=Context0.createPanner(); +Context0.listener.setPosition(29,135,158); + +BufferSource1.connect(Gain0); + +BufferSource1.buffer=function(){ + var channels=3; + var length=53325; + var Buffer=Context0.createBuffer(channels,length,Context0.sampleRate); + for(var y=0;y<channels;y++){ + var bufferData= Buffer.getChannelData(y); + for (var i = 0; i < length; ++i) { + bufferData[i] = i*(270); + } + }; + return Buffer; +}(); + +Gain0.connect(Panner0); +Panner0.panningModel="equalpower"; + + +setTimeout(function(){ +document.documentElement.removeAttribute("class"); +},500) + +</script> diff --git a/dom/media/test/crashtests/880342-1.html b/dom/media/test/crashtests/880342-1.html new file mode 100644 index 000000000..7d1aa0c3e --- /dev/null +++ b/dom/media/test/crashtests/880342-1.html @@ -0,0 +1,208 @@ +<script> +try { o1 = new window.AudioContext(2, 10, 1019159); } catch(e) { } +try { o2 = o1.createBufferSource(); } catch(e) { } +try { o3 = o1.createConvolver(); } catch(e) { } +try { o4 = o1.createChannelMerger(2); } catch(e) { } +try { o5 = o1.createAnalyser(); } catch(e) { } +try { o6 = o1.createPanner(); } catch(e) { } +try { o7 = o1.createDynamicsCompressor(); } catch(e) { } +try { o8 = o1.createWaveShaper(); } catch(e) { } +try { o9 = o1.createChannelSplitter(6); } catch(e) { } +try { o10 = o1.createScriptProcessor(8192, 2, 3); } catch(e) { } +try { o1.listener.setPosition(-144115188075855870, 0, -5e-324) } catch(e) { } +try { o3.buffer = function(){var buffer = o1.createBuffer(2, 741, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<741; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}(); } catch(e) { } +try { o10.onaudioprocess = function(e) { /* onEvent */ }; } catch(e) { } +try { o3.connect(o5,0,0) } catch(e) { } +try { o9.channelCountMode = 'max'; } catch(e) { } +try { o10.onaudioprocess = function(e) { /* onEvent */ }; } catch(e) { } +try { o7.channelInterpretation = 'speakers'; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(2, 1887, 63346);for(var c=0; c<2; c++) {for(var i=0; i<1887; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.playbackRate.exponentialRampToValueAtTime(3.819464020334534, 32) } catch(e) { } +try { o5.connect(o9,2,0) } catch(e) { } +try { o9.channelCountMode = 'explicit'; } catch(e) { } +try { o1.listener.speedOfSound = 72057594037927940; } catch(e) { } +try { o1.destination.channelCountMode = 'explicit'; } catch(e) { } +try { o7.threshold.value = 0.0646435404346891590021684237399313133209944; } catch(e) { } +try { o7.connect(o10,0,0) } catch(e) { } +try { o1.destination.channelInterpretation = 'speakers'; } catch(e) { } +try { o3.connect(o4,0,0) } catch(e) { } +try { o7.release.value = 23.030355486273447; } catch(e) { } +try { o9.connect(o9,4,0) } catch(e) { } +try { o6.channelCountMode = 'max'; } catch(e) { } +try { o7.threshold.value = 0.6395867363641939418172910336579661816358566284179687500; } catch(e) { } +try { o2.connect(o9,3,0) } catch(e) { } +try { o10.onaudioprocess = function(e) { /* onEvent */ }; } catch(e) { } +try { o7.connect(o10,0,0) } catch(e) { } +try { o5.connect(o5,0,0) } catch(e) { } +try { o2.playbackRate.value = 5e-324; } catch(e) { } +try { o4.channelInterpretation = 'discrete'; } catch(e) { } +try { o2.playbackRate.value = 1.2211628339508704; } catch(e) { } +try { o2.channelCountMode = 'clamped-max'; } catch(e) { } +try { o1.listener.dopplerFactor = 32; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(22, 1811, 21177);for(var c=0; c<22; c++) {for(var i=0; i<1811; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o5.channelCountMode = 'max'; } catch(e) { } +try { o1.listener.speedOfSound = 1024; } catch(e) { } +try { o2.playbackRate.value = 9.999999999999998e-91; } catch(e) { } +try { o1.listener.speedOfSound = 16; } catch(e) { } +try { o8.curve = new Float32Array(256); } catch(e) { } +try { o1.listener.setVelocity(0, 128, 4) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(23, 483, o1.sampleRate);for(var c=0; c<23; c++) {for(var i=0; i<483; i++) {buffer.getChannelData(c)[i] = 0.026;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 945, 43803);for(var c=0; c<3; c++) {for(var i=0; i<945; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(19, 997, 23781);for(var c=0; c<19; c++) {for(var i=0; i<997; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.listener.speedOfSound = -8; } catch(e) { } +try { o3.channelCountMode = 'explicit'; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 1740, o1.sampleRate);for(var c=0; c<3; c++) {for(var i=0; i<1740; i++) {buffer.getChannelData(c)[i] = 8;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(1, 1057, 30602);for(var c=0; c<1; c++) {for(var i=0; i<1057; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 78, o1.sampleRate);for(var c=0; c<3; c++) {for(var i=0; i<78; i++) {buffer.getChannelData(c)[i] = 10;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.listener.setPosition(9.999999999999995e-275, 0.0001, 2) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(1, 863, o1.sampleRate);for(var c=0; c<1; c++) {for(var i=0; i<863; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o8.channelCount = 3; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(2, 1821, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<1821; i++) {buffer.getChannelData(c)[i] = 0.3655;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o6.connect(o6,0,0) } catch(e) { } +try { o1.listener.setOrientation(128, -0.479527496, 128, 1, 1, -16) } catch(e) { } +try { o4.connect(o8,0,0) } catch(e) { } +try { o7.reduction.exponentialRampToValueAtTime(1.7976931348623157e+308, 2048) } catch(e) { } +try { o1.listener.dopplerFactor = 0.5754; } catch(e) { } +try { o7.release.value = 0; } catch(e) { } +try { o5.getFloatFrequencyData(new Float32Array(2048)) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(2, 120, 42419);for(var c=0; c<2; c++) {for(var i=0; i<120; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o3.buffer = function(){var buffer = o1.createBuffer(1, 1620, o1.sampleRate);for(var c=0; c<1; c++) {for(var i=0; i<1620; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}(); } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(1, 823, 77239);for(var c=0; c<1; c++) {for(var i=0; i<823; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.destination.channelInterpretation = 'speakers'; } catch(e) { } +try { o1.listener.setPosition(2048, 0.000522899209, -4503599627370495) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 84028, 75483);for(var c=0; c<3; c++) {for(var i=0; i<84028; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.playbackRate.setTargetAtTime(5e-324, 9.999999999999998e-104, 0) } catch(e) { } +try { o7.attack.value = 9.999999999999994e-236; } catch(e) { } +try { o1.listener.dopplerFactor = 1024; } catch(e) { } +try { o3.connect(o7,0,0) } catch(e) { } +try { o2.playbackRate.linearRampToValueAtTime(0, 0) } catch(e) { } +try { o4.connect(o10,0,0) } catch(e) { } +try { o1.listener.setVelocity(0.682, 32, 1e-76) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 201, o1.sampleRate);for(var c=0; c<3; c++) {for(var i=0; i<201; i++) {buffer.getChannelData(c)[i] = 4;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.connect(o6,0,0) } catch(e) { } +try { o5.getByteFrequencyData(new Uint8Array(32)) } catch(e) { } +try { o3.connect(o6,0,0) } catch(e) { } +try { o7.channelCount = 1; } catch(e) { } +try { o2.playbackRate.setValueCurveAtTime(new Float32Array(512), 8, 1) } catch(e) { } +try { o3.connect(o4,0,1) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 1996, o1.sampleRate);for(var c=0; c<3; c++) {for(var i=0; i<1996; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.listener.dopplerFactor = 2; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(2, 983, 60517);for(var c=0; c<2; c++) {for(var i=0; i<983; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o6.coneInnerAngle = 360; } catch(e) { } +try { o8.curve = new Float32Array(512); } catch(e) { } +try { o1.listener.setPosition(32, 16, 9.999999999999995e-280) } catch(e) { } +try { o6.connect(o6,0,0) } catch(e) { } +try { o1.listener.setPosition(2097151, 512, 5e-324) } catch(e) { } +try { o7.channelCountMode = 'clamped-max'; } catch(e) { } +try { o1.destination.channelCountMode = 'max'; } catch(e) { } +try { o1.listener.setPosition(0, 1000000, 64) } catch(e) { } +try { o4.connect(o5,0,0) } catch(e) { } +try { o9.connect(o4,0,1) } catch(e) { } +try { o7.attack.setValueCurveAtTime(new Float32Array(8), 256, 2048) } catch(e) { } +try { o9.channelCountMode = 'explicit'; } catch(e) { } +try { o1.listener.dopplerFactor = 5e-324; } catch(e) { } +try { o4.connect(o10,0,0) } catch(e) { } +try { o7.ratio.cancelScheduledValues(1) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(1, 1590, 9733);for(var c=0; c<1; c++) {for(var i=0; i<1590; i++) {buffer.getChannelData(c)[i] = 2;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.destination.channelCount = 2; } catch(e) { } +try { o1.destination.channelInterpretation = 'speakers'; } catch(e) { } +try { o5.channelCountMode = 'max'; } catch(e) { } +try { o9.channelCountMode = 'clamped-max'; } catch(e) { } +try { o7.attack.setTargetAtTime(0.11499421161482907549622467513472656719386577606201171875000, 1, 1.7976931348623157e+308) } catch(e) { } +try { o2.playbackRate.value = 1; } catch(e) { } +try { o3.normalize = false; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(2, 1866, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<1866; i++) {buffer.getChannelData(c)[i] = 0.174908422905697580329587026426452212035655975341797;}}return buffer;}(); } catch(e) { } +try { o2.playbackRate.value = 1.0; } catch(e) { } +try { o7.threshold.value = 100; } catch(e) { } +try { o1.listener.setVelocity(961.4441892370145, 9.999999999999999e-157, 1) } catch(e) { } +try { o5.getByteFrequencyData(new Uint8Array(2)) } catch(e) { } +try { o6.connect(o10,0,0) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 1176, o1.sampleRate);for(var c=0; c<3; c++) {for(var i=0; i<1176; i++) {buffer.getChannelData(c)[i] = 9.753993292300242;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.playbackRate.linearRampToValueAtTime(0.8687, 32) } catch(e) { } +try { o5.channelCountMode = 'explicit'; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(13, 703, 12723);for(var c=0; c<13; c++) {for(var i=0; i<703; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.loopEnd = 1.7976931348623157e+308; } catch(e) { } +try { o3.connect(o7,0,0) } catch(e) { } +try { o1.destination.channelCountMode = 'clamped-max'; } catch(e) { } +try { o1.destination.channelInterpretation = 'discrete'; } catch(e) { } +try { o2.connect(o10,0,0) } catch(e) { } +try { o3.normalize = false; } catch(e) { } +try { /* switch-case did not return anything. */ } catch(e) { } +try { o10.connect(o8,0,0) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 132, 88507);for(var c=0; c<3; c++) {for(var i=0; i<132; i++) {buffer.getChannelData(c)[i] = 1.7976931348623157e+308;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.loopStart = 1.7976931348623157e+308; } catch(e) { } +try { o1.listener.dopplerFactor = 1024; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(1, 40, o1.sampleRate);for(var c=0; c<1; c++) {for(var i=0; i<40; i++) {buffer.getChannelData(c)[i] = 1.3785770335346594;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o4.connect(o9,5,0) } catch(e) { } +try { o8.curve = new Float32Array(16); } catch(e) { } +try { o10.onaudioprocess = function(e) { /* onEvent */ }; } catch(e) { } +try { o6.channelCountMode = 'explicit'; } catch(e) { } +try { o2.playbackRate.value = 0; } catch(e) { } +try { o4.channelCount = 3; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 220, o1.sampleRate);for(var c=0; c<3; c++) {for(var i=0; i<220; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.destination.channelInterpretation = 'discrete'; } catch(e) { } +try { o1.listener.setPosition(70368744177664, 2048, 1.7976931348623157e+308) } catch(e) { } +try { o2.playbackRate.setValueCurveAtTime(new Float32Array(128), 1.7976931348623157e+308, 0.75) } catch(e) { } +try { o5.fftSize = 118; } catch(e) { } +try { o5.minDecibels = 1; } catch(e) { } +try { o7.release.value = 5e-324; } catch(e) { } +try { o2.channelCount = 3; } catch(e) { } +try { o2.channelCountMode = 'clamped-max'; } catch(e) { } +try { o3.normalize = false; } catch(e) { } +try { o1.listener.speedOfSound = 2; } catch(e) { } +try { o2.loopStart = 32; } catch(e) { } +try { o3.channelCountMode = 'max'; } catch(e) { } +try { o1.listener.setPosition(0.37976588317653304, -274877906943, 64) } catch(e) { } +try { o8.curve = new Float32Array(4); } catch(e) { } +try { o1.listener.setVelocity(16, -1024, 0) } catch(e) { } +try { o5.minDecibels = 10000; } catch(e) { } +try { o2.playbackRate.value = 5e-324; } catch(e) { } +try { o3.connect(o9,1,0) } catch(e) { } +try { o10.onaudioprocess = function(e) { /* onEvent */ }; } catch(e) { } +try { o5.connect(o8,0,0) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(3, 554, o1.sampleRate);for(var c=0; c<3; c++) {for(var i=0; i<554; i++) {buffer.getChannelData(c)[i] = 0.000001;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o7.release.value = 0; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(1, 1289, 29583);for(var c=0; c<1; c++) {for(var i=0; i<1289; i++) {buffer.getChannelData(c)[i] = 5e-324;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.listener.setOrientation(1024, 64, 16, 1024, 1, 68719476735) } catch(e) { } +try { o1.listener.setOrientation(512, 10000000, 274877906944, 9.999999999999998e-113, -8, 3.6191134923595274) } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(1, 1453, 15258);for(var c=0; c<1; c++) {for(var i=0; i<1453; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o8.channelInterpretation = 'discrete'; } catch(e) { } +try { o5.channelInterpretation = 'discrete'; } catch(e) { } +try { o7.connect(o9,4,0) } catch(e) { } +try { o8.connect(o10,0,0) } catch(e) { } +try { o1.listener.setPosition(18014398509481984, 16, 0.505129302503804056279079759406158700585365295410156250000) } catch(e) { } +try { o10.connect(o9,5,0) } catch(e) { } +try { o2.loop = false; } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(11, 1673, o1.sampleRate);for(var c=0; c<11; c++) {for(var i=0; i<1673; i++) {buffer.getChannelData(c)[i] = 0;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(2, 577, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<577; i++) {buffer.getChannelData(c)[i] = 0.5611;}}return buffer;}() } catch(e) { } +try { o2.connect(o1.destination); } catch(e) { } +try { o1.listener.setOrientation(64, 2049, 5e-324, 0.1777, 2, 7) } catch(e) { } +try { o5.maxDecibels = 128; } catch(e) { } +try { o2.start(0) } catch(e) { } +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/880342-2.html b/dom/media/test/crashtests/880342-2.html new file mode 100644 index 000000000..a8ef88ae7 --- /dev/null +++ b/dom/media/test/crashtests/880342-2.html @@ -0,0 +1,8 @@ +<script> +try { o1 = new window.AudioContext(2, 10, 1019159); } catch(e) { } +try { o2 = o1.createBufferSource(); } catch(e) { } +try { o3 = o1.createConvolver(); } catch(e) { } +try { o3.buffer = function(){var buffer = o1.createBuffer(2, 741, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<741; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}(); } catch(e) { } +try { o2.buffer = function(){var buffer = o1.createBuffer(2, 120, 42419);for(var c=0; c<2; c++) {for(var i=0; i<120; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}() } catch(e) { } +try { o3.buffer = function(){var buffer = o1.createBuffer(1, 1620, o1.sampleRate);for(var c=0; c<1; c++) {for(var i=0; i<1620; i++) {buffer.getChannelData(c)[i] = -1;}}return buffer;}(); } catch(e) { } +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/880384.html b/dom/media/test/crashtests/880384.html new file mode 100644 index 000000000..798fbf133 --- /dev/null +++ b/dom/media/test/crashtests/880384.html @@ -0,0 +1,8 @@ +<script> +o1 = new window.AudioContext(3, 256, 44100); +o2 = o1.createBufferSource(); +o3 = o1.createConvolver(); +o3.normalize = false; +o3.buffer = function(){var buffer = o1.createBuffer(2, 1051, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<1051; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}(); +o3.buffer = function(){var buffer = o1.createBuffer(2, 1112, o1.sampleRate);for(var c=0; c<2; c++) {for(var i=0; i<1112; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}(); +</script> diff --git a/dom/media/test/crashtests/880404.html b/dom/media/test/crashtests/880404.html new file mode 100644 index 000000000..bf3493238 --- /dev/null +++ b/dom/media/test/crashtests/880404.html @@ -0,0 +1,6 @@ +<script> +o1 = new window.OfflineAudioContext(2, 32, 44100); +o12 = o1.createConvolver(); +o12.buffer = function(){var buffer = o1.createBuffer(1, 78, o1.sampleRate);for(var c=0; c<1; c++) {for(var i=0; i<78; i++) {buffer.getChannelData(c)[i] = 1;}}return buffer;}(); +o1.startRendering(); +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/880724.html b/dom/media/test/crashtests/880724.html new file mode 100644 index 000000000..b57b5f996 --- /dev/null +++ b/dom/media/test/crashtests/880724.html @@ -0,0 +1,13 @@ +<script> +o1 = new window.AudioContext(); +o5 = o1.createConvolver(); +o5.buffer = function() { + var buffer = o1.createBuffer(2, 3, 33120); + for(var c=0; c<2; c++) { + for(var i=0; i<3; i++) { + buffer.getChannelData(c)[i] = -1; + } + } + return buffer; +}(); +</script>
\ No newline at end of file diff --git a/dom/media/test/crashtests/881775.html b/dom/media/test/crashtests/881775.html new file mode 100644 index 000000000..d55c45d17 --- /dev/null +++ b/dom/media/test/crashtests/881775.html @@ -0,0 +1,25 @@ +<script> +o1 = new window.AudioContext(2, 16, 44100); +o2 = o1.createBufferSource(); +o12 = o1.createBiquadFilter(); +o1.destination.channelCountMode = 'max'; +o2.buffer = function(){ + var buffer = o1.createBuffer(2, 326, 77632); + for(var c=0; c<2; c++) { + for(var i=0; i<326; i++) { + buffer.getChannelData(c)[i] = -1; + } + } + return buffer; +}(); +o2.connect(o1.destination); +o2.buffer = function(){ + var buffer = o1.createBuffer(3, 405, o1.sampleRate); + for(var c=0; c<3; c++) { + for(var i=0; i<405; i++) { + buffer.getChannelData(c)[i] = 1; + } + } + return buffer; +}(); +</script> diff --git a/dom/media/test/crashtests/882549.html b/dom/media/test/crashtests/882549.html new file mode 100644 index 000000000..8a720c3e1 --- /dev/null +++ b/dom/media/test/crashtests/882549.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html> + <head> + <script> + var o0 = new VTTCue(0.000, 1.000, 'Bug882549'); + var o1 = o0.getCueAsHTML(); + </script> + </head> + <body> + </body> +</html> +<script> +</script> diff --git a/dom/media/test/crashtests/882956.html b/dom/media/test/crashtests/882956.html new file mode 100644 index 000000000..ae7b441f9 --- /dev/null +++ b/dom/media/test/crashtests/882956.html @@ -0,0 +1,15 @@ +<script> +o1 = new window.AudioContext(1, 2048, 44100); +o2 = o1.createBufferSource(); +o1.destination.channelCountMode = 'max'; +o2.connect(o1.destination); +o2.buffer = function(){ + var buffer = o1.createBuffer(30, 442, 94933); + for(var c=0; c<30; c++) { + for(var i=0; i<442; i++) { + buffer.getChannelData(c)[i] = 1; + } + } + return buffer; +}(); +</script> diff --git a/dom/media/test/crashtests/884459.html b/dom/media/test/crashtests/884459.html new file mode 100644 index 000000000..e321d569f --- /dev/null +++ b/dom/media/test/crashtests/884459.html @@ -0,0 +1,12 @@ +<script> +var Context0= new window.OfflineAudioContext(14,191531,44100) +var BufferSource1=Context0.createBufferSource(); + +setInterval(function(){ +BufferSource1.playbackRate.setTargetAtTime(0xC8F461D3EE6B2,(Context0.currentTime+0.0677539280615747),0.826130285160616); +BufferSource1.playbackRate.setValueAtTime(35467.63924283907536607336193,0); +},1) + +Context0.startRendering(); + +</script> diff --git a/dom/media/test/crashtests/889042.html b/dom/media/test/crashtests/889042.html new file mode 100644 index 000000000..9f74979c5 --- /dev/null +++ b/dom/media/test/crashtests/889042.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<script> + (new AudioContext()).createConvolver().buffer = null; +</script> diff --git a/dom/media/test/crashtests/894104.html b/dom/media/test/crashtests/894104.html new file mode 100644 index 000000000..d021994e7 --- /dev/null +++ b/dom/media/test/crashtests/894104.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<script> + +function boom() +{ + var frame = document.getElementById("f"); + var frameWin = frame.contentWindow; + frameWin.VTTCue; + document.body.removeChild(frame); + new frameWin.VTTCue(0, 1, "Bug 894104").getCueAsHTML(); +} + +</script> +</head> + +<body onload="boom();"><iframe id="f" src="data:text/html,1"></iframe></body> +</html> diff --git a/dom/media/test/crashtests/907986-1.html b/dom/media/test/crashtests/907986-1.html new file mode 100644 index 000000000..320b8eadd --- /dev/null +++ b/dom/media/test/crashtests/907986-1.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.OfflineAudioContext(1, 100, 48000); +context.oncomplete = function(e) { + document.documentElement.removeAttribute("class"); +}; +// zero front vector +context.listener.setOrientation(0, 0, 0, 6.311749985202524e+307, 0, 0); +var panner = context.createPanner(); +panner.setPosition(6.311749985202524e+307, 4, 6.311749985202524e+307); +panner.connect(context.destination); +var source = context.createOscillator(); +source.connect(panner); +source.start(0); +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/907986-2.html b/dom/media/test/crashtests/907986-2.html new file mode 100644 index 000000000..e0626ba2c --- /dev/null +++ b/dom/media/test/crashtests/907986-2.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.OfflineAudioContext(1, 100, 48000); +context.oncomplete = function(e) { + document.documentElement.removeAttribute("class"); +}; +// zero up vector +context.listener.setOrientation(0, 6.311749985202524e+307, 0, 0, 0, 0); +var panner = context.createPanner(); +panner.setPosition(1, 2, 3); +panner.connect(context.destination); +var source = context.createOscillator(); +source.connect(panner); +source.start(0); +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/907986-3.html b/dom/media/test/crashtests/907986-3.html new file mode 100644 index 000000000..75b756c36 --- /dev/null +++ b/dom/media/test/crashtests/907986-3.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.OfflineAudioContext(1, 100, 48000); +context.oncomplete = function(e) { + document.documentElement.removeAttribute("class"); +}; +// linearly dependent +context.listener.setOrientation(0, 0, -6.311749985202524e+307, 0, 0, 6.311749985202524e+307); +var panner = context.createPanner(); +panner.setPosition(1, 2, 3); +panner.connect(context.destination); +var source = context.createOscillator(); +source.connect(panner); +source.start(0); +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/907986-4.html b/dom/media/test/crashtests/907986-4.html new file mode 100644 index 000000000..a73500efc --- /dev/null +++ b/dom/media/test/crashtests/907986-4.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.OfflineAudioContext(1, 100, 48000); +context.oncomplete = function(e) { + document.documentElement.removeAttribute("class"); +}; +var panner = context.createPanner(); +panner.setPosition(0, 3, 0); // directly overhead +panner.connect(context.destination); +var source = context.createOscillator(); +source.connect(panner); +source.start(0); +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/910171-1.html b/dom/media/test/crashtests/910171-1.html new file mode 100644 index 000000000..9f3ec831b --- /dev/null +++ b/dom/media/test/crashtests/910171-1.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.OfflineAudioContext(1, 4096, 48000); +context.oncomplete = function(e) { + document.documentElement.removeAttribute("class"); +}; +var delay = context.createDelay(); +delay.connect(context.destination); +delay.delayTime.value = 1.0; +var buffer = context.createBuffer(1, 2048, context.sampleRate); +var source = context.createBufferSource(); +source.buffer = buffer; +source.connect(delay); +source.start(); +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/920987.html b/dom/media/test/crashtests/920987.html new file mode 100644 index 000000000..6e8b2992a --- /dev/null +++ b/dom/media/test/crashtests/920987.html @@ -0,0 +1,6 @@ +<script> +var ctx = new AudioContext(); +var buffer = ctx.createBuffer(1, 1000, ctx.sampleRate); +var array = new Float32Array(900); +buffer.copyToChannel(array, 0, 0xfffffff8); +</script> diff --git a/dom/media/test/crashtests/925619-1.html b/dom/media/test/crashtests/925619-1.html new file mode 100644 index 000000000..146c531f9 --- /dev/null +++ b/dom/media/test/crashtests/925619-1.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +// 1024 > 89478.5 * 48000 - (1 << 32) +var context = new window.OfflineAudioContext(1, 1024, 48000); +context.oncomplete = function(e) { + document.documentElement.removeAttribute("class"); +}; +var buffer = context.createBuffer(1, 2048, context.sampleRate); +var source = context.createBufferSource(); +source.buffer = buffer; +source.start(89478.5); // 89478.5 is a little greater than 2^32 / 48000. +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/925619-2.html b/dom/media/test/crashtests/925619-2.html new file mode 100644 index 000000000..e734b8bca --- /dev/null +++ b/dom/media/test/crashtests/925619-2.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.OfflineAudioContext(1, 2048, 48000); +// 1024 > 89478.5 * 48000 - (1 << 32) +var buffer = context.createBuffer(1, 1024, context.sampleRate); +var source = context.createBufferSource(); +source.buffer = buffer; +source.onended = function(e) { + document.documentElement.removeAttribute("class"); +}; +source.start(0); +source.stop(89478.5); // 89478.5 is a little greater than 2^32 / 48000. +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/926619.html b/dom/media/test/crashtests/926619.html new file mode 100644 index 000000000..2ead02af4 --- /dev/null +++ b/dom/media/test/crashtests/926619.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<script> + +function boom() +{ + var ac = new window.AudioContext(); + + var _ChannelMergerNode = ac.createChannelMerger(4); + + var _MediaStreamAudioDestinationNode = ac.createMediaStreamDestination(); + var _MediaStream = _MediaStreamAudioDestinationNode.stream; + var _MediaStreamAudioSourceNode = ac.createMediaStreamSource(_MediaStream); + + _ChannelMergerNode.connect(_MediaStreamAudioDestinationNode, 0, 0); + _MediaStreamAudioSourceNode.connect(_ChannelMergerNode, 0, 0); +} + +</script> +</head> +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/933151.html b/dom/media/test/crashtests/933151.html new file mode 100644 index 000000000..3d45f7af3 --- /dev/null +++ b/dom/media/test/crashtests/933151.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> +<head> +<script> + +function boom() +{ + var ac = new window.AudioContext(); + var buffer = ac.createBuffer(1, 24313, 47250); + buffer.copyFromChannel(buffer.getChannelData(0), ''); +} + +</script> +</head> +<body onload="boom();"></body> +</html> diff --git a/dom/media/test/crashtests/933156.html b/dom/media/test/crashtests/933156.html new file mode 100644 index 000000000..b89445a43 --- /dev/null +++ b/dom/media/test/crashtests/933156.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +function boom() +{ + var ac = new window.AudioContext(); + + var panner = ac.createPanner(); + panner.setPosition(8, 0.7643051305237005, 0.10292575673733972); + + var oscillator = ac.createOscillator(); + oscillator.connect(panner); + oscillator.start(0); + + setTimeout(function() { + panner.panningModel = 'equalpower'; + oscillator.stop(0); + document.documentElement.removeAttribute("class"); + }, 0.5); +} +boom(); +</script> +</html> diff --git a/dom/media/test/crashtests/944851.html b/dom/media/test/crashtests/944851.html new file mode 100644 index 000000000..4f663accc --- /dev/null +++ b/dom/media/test/crashtests/944851.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<script> + +var ac = new AudioContext(1, 1354, 44100); +var shaper = ac.createWaveShaper(); +var biquad = ac.createBiquadFilter(); +shaper.connect(biquad.frequency); +biquad.getFrequencyResponse(new Float32Array(55785), + new Float32Array(62876), + new Float32Array(45111)); + +</script> +</head> +</html> diff --git a/dom/media/test/crashtests/952756.html b/dom/media/test/crashtests/952756.html new file mode 100644 index 000000000..ffced2e40 --- /dev/null +++ b/dom/media/test/crashtests/952756.html @@ -0,0 +1,19 @@ +<script> +var Context0= new AudioContext() +var BufferSource0=Context0.createBufferSource(); +BufferSource0.buffer=function(){ + var length=35887; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(0.39765272522345185))}; + return Buffer; +}(); +BufferSource0.start(0.01932738965842873,0.33345631847623736,0.3893404237460345); +BufferSource0.buffer=function(){ + var length=15952; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { bufferData[i] = Math.sin(i*(85))}; + return Buffer; +}(); +</script> diff --git a/dom/media/test/crashtests/966636.html b/dom/media/test/crashtests/966636.html new file mode 100644 index 000000000..acc9758c8 --- /dev/null +++ b/dom/media/test/crashtests/966636.html @@ -0,0 +1,45 @@ +<html class="reftest-wait"> +<head> +<script> +function boom() { + var Context0= new window.AudioContext(); + var BufferSource0=Context0.createBufferSource(); + BufferSource0.start(0); + BufferSource0.playbackRate.value = 1.0/128.0; + + setTimeout( + function(){ + BufferSource0.buffer= + function(){ + var length=1; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { + bufferData[i] = Math.sin(i*(626)) + };return Buffer; + }(); + setTimeout( + function(){ + document.documentElement.removeAttribute("class"); + }, 0) + },4) + + BufferSource0.buffer= + function(){ + const resample_filter_length = 64; + // Small enough so that resampler tail latency is triggered immediately, + // but large enough that skip_zeros does not consume resampler tail + // latency. + var length=resample_filter_length/2 + 1; + var Buffer=Context0.createBuffer(1,length,Context0.sampleRate); + var bufferData= Buffer.getChannelData(0); + for (var i = 0; i < length; ++i) { + bufferData[i] = Math.sin(i*(311980)) + }; + return Buffer; + }(); +} +</script> +</head> +<body onload="boom();"> +</body> diff --git a/dom/media/test/crashtests/986901.html b/dom/media/test/crashtests/986901.html new file mode 100644 index 000000000..343df2c0e --- /dev/null +++ b/dom/media/test/crashtests/986901.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<script> + var ac = new window.AudioContext(); + var delay1 = ac.createDelay(0.02); + var delay2 = ac.createDelay(0.002); + var source = ac.createOscillator(); + source.start(0); + source.connect(delay1, 0, 0); + delay2.connect(delay1, 0, 0); + delay1.connect(delay2, 0, 0); +</script> +</head> +</html> diff --git a/dom/media/test/crashtests/990794.html b/dom/media/test/crashtests/990794.html new file mode 100644 index 000000000..8b40088b1 --- /dev/null +++ b/dom/media/test/crashtests/990794.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<script> +var ctx = new AudioContext(); +var source = ctx.createOscillator(); +source.start(0); + +function appendMerger(src) { + const inputCount = 18; + + var merger = ctx.createChannelMerger(32); + + for (var i = 0; i < inputCount; ++i) { + src.connect(merger, 0, i); + } + + return merger; +} + +for (var i = 0; i < 6; ++i) { + source = appendMerger(source); +} +</script> diff --git a/dom/media/test/crashtests/995289.html b/dom/media/test/crashtests/995289.html new file mode 100644 index 000000000..c988f41fa --- /dev/null +++ b/dom/media/test/crashtests/995289.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<script> +var r0=new AudioContext(); +var r5=r0.createOscillator(); +var r6=r0.createPeriodicWave(new Float32Array(1),new Float32Array(1)); +r5.frequency.value = 4294967295; +r5.start(0); +r5.setPeriodicWave(r6); +</script> diff --git a/dom/media/test/crashtests/analyser-channels-1.html b/dom/media/test/crashtests/analyser-channels-1.html new file mode 100644 index 000000000..2f3133cf1 --- /dev/null +++ b/dom/media/test/crashtests/analyser-channels-1.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> + var context = new window.OfflineAudioContext(1, 256, 48000); + var analyser = context.createAnalyser(); + analyser.channelCount = 2; + analyser.channelCountMode = "explicit"; + analyser.fftSize = 32; + var source = context.createOscillator(); + source.connect(analyser); + source.start(0); + context.startRendering(). + then(function() { + document.documentElement.removeAttribute("class"); + }); +</script> diff --git a/dom/media/test/crashtests/audiocontext-double-suspend.html b/dom/media/test/crashtests/audiocontext-double-suspend.html new file mode 100644 index 000000000..98399549b --- /dev/null +++ b/dom/media/test/crashtests/audiocontext-double-suspend.html @@ -0,0 +1,5 @@ +<script> +var ac = new AudioContext(); +ac.resume(); +ac.resume(); +</script> diff --git a/dom/media/test/crashtests/buffer-source-duration-1.html b/dom/media/test/crashtests/buffer-source-duration-1.html new file mode 100644 index 000000000..df8d7a37d --- /dev/null +++ b/dom/media/test/crashtests/buffer-source-duration-1.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +const rate = 44100; +var context = new window.OfflineAudioContext(1, 512, rate); +var buffer = context.createBuffer(1, 128, rate); +var source = context.createBufferSource(); +source.buffer = buffer; +source.start(0, 0, 86400); +context.startRendering(). + then(function() { + document.documentElement.removeAttribute("class"); + }); +</script> diff --git a/dom/media/test/crashtests/buffer-source-ended-1.html b/dom/media/test/crashtests/buffer-source-ended-1.html new file mode 100644 index 000000000..de8546316 --- /dev/null +++ b/dom/media/test/crashtests/buffer-source-ended-1.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new AudioContext(); + +var source = context.createBufferSource(); +source.buffer = context.createBuffer(1, 2.0 * context.sampleRate, context.sampleRate); +source.onended = function(e) { + document.documentElement.removeAttribute("class"); +} +source.start(0.0, 1.0); +setTimeout( + function() { + source.buffer = context.createBuffer(1, 1, context.sampleRate); + }, 0); +</script> diff --git a/dom/media/test/crashtests/buffer-source-resampling-start-1.html b/dom/media/test/crashtests/buffer-source-resampling-start-1.html new file mode 100644 index 000000000..55db8591e --- /dev/null +++ b/dom/media/test/crashtests/buffer-source-resampling-start-1.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +const rate = 44101; // not divisible by 2 +var context = new window.OfflineAudioContext(1, 512, rate); +var buffer = context.createBuffer(1, 128, rate); +buffer.getChannelData(0)[0] = 1.0; +var source = context.createBufferSource(); +source.buffer = buffer; +source.playbackRate.value = rate / (Math.pow(2, 30) * 1.0000001); +source.start(512 / rate); +context.startRendering(). + then(function() { + document.documentElement.removeAttribute("class"); + }); +</script> diff --git a/dom/media/test/crashtests/cors.webm b/dom/media/test/crashtests/cors.webm Binary files differnew file mode 100644 index 000000000..72b029723 --- /dev/null +++ b/dom/media/test/crashtests/cors.webm diff --git a/dom/media/test/crashtests/cors.webm^headers^ b/dom/media/test/crashtests/cors.webm^headers^ new file mode 100644 index 000000000..cb762eff8 --- /dev/null +++ b/dom/media/test/crashtests/cors.webm^headers^ @@ -0,0 +1 @@ +Access-Control-Allow-Origin: * diff --git a/dom/media/test/crashtests/crashtests.list b/dom/media/test/crashtests/crashtests.list new file mode 100644 index 000000000..496fe5ee5 --- /dev/null +++ b/dom/media/test/crashtests/crashtests.list @@ -0,0 +1,103 @@ +load 0-timescale.html # bug 1229166 +skip-if(Android) load 459439-1.html # bug 888557 +load 466607-1.html +load 466945-1.html +load 468763-1.html +load 474744-1.html +HTTP load 481136-1.html # needs to be HTTP to recognize the ogg as an audio file? +load 492286-1.xhtml +load 493915-1.html +load 495794-1.html +load 576612-1.html +load 752784-1.html +load 789075-1.html +HTTP load 795892-1.html +load 844563.html +load 846612.html +load 852838.html +load 865537-1.html +load 868504.html +load 874869.html +load 874915.html +load 874934.html +load 874952.html +load 875144.html +load 875596.html +load 875911.html +load 876024-1.html +load 876024-2.html +load 876118.html +load 876207.html +load 876215.html +load 876249.html +load 876252.html +load 876834.html +load 877527.html +load 877820.html +load 878014.html +load 878328.html +load 878407.html +load 878478.html +load 880129.html +load 880202.html +load 880342-1.html +load 880342-2.html +load 880384.html +load 880404.html +load 880724.html +load 881775.html +load 882549.html +load 882956.html +load 884459.html +load 889042.html +load 894104.html +load 907986-1.html +load 907986-2.html +load 907986-3.html +load 907986-4.html +load 910171-1.html +load 920987.html +load 925619-1.html +load 925619-2.html +load 926619.html +load 933151.html +load 933156.html +load 944851.html +load 952756.html +load 966636.html +load 986901.html +load 990794.html +load 995289.html +load 1012609.html +load 1015662.html +load 1020205.html +skip-if(Android) test-pref(media.navigator.permission.disabled,true) load 1028458.html # bug 1048863 +load 1041466.html +load 1045650.html +load 1080986.html +load 1122218.html +load 1127188.html +load 1157994.html +load 1158427.html +load 1185176.html +load 1185192.html +load 1223670.html +load 1228484.html +load 1304948.html +load 1319486.html +load 1291702.html +load disconnect-wrong-destination.html +load analyser-channels-1.html +load audiocontext-double-suspend.html +load buffer-source-duration-1.html +load buffer-source-ended-1.html +load buffer-source-resampling-start-1.html +load doppler-1.html +HTTP load media-element-source-seek-1.html +load offline-buffer-source-ended-1.html +load oscillator-ended-1.html +load oscillator-ended-2.html +load video-replay-after-audio-end.html +# This needs to run at the end to avoid leaking busted state into other tests. +load 691096-1.html +load 1236639.html diff --git a/dom/media/test/crashtests/disconnect-wrong-destination.html b/dom/media/test/crashtests/disconnect-wrong-destination.html new file mode 100644 index 000000000..515ca3c87 --- /dev/null +++ b/dom/media/test/crashtests/disconnect-wrong-destination.html @@ -0,0 +1,13 @@ +<script> + var oc = new OfflineAudioContext(1, 1, 44100); + var splitter = oc.createChannelSplitter(2); + var merger0 = oc.createChannelMerger(2); + var merger1 = oc.createChannelMerger(2); + splitter.connect(merger0, 0); + splitter.connect(merger0, 1); + splitter.connect(merger1, 0); + splitter.connect(merger1, 1); + + splitter.disconnect(merger0, 0); + splitter.disconnect(merger1, 1); +</script> diff --git a/dom/media/test/crashtests/doppler-1.html b/dom/media/test/crashtests/doppler-1.html new file mode 100644 index 000000000..2af3c8f46 --- /dev/null +++ b/dom/media/test/crashtests/doppler-1.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.AudioContext(); +var source = context.createBufferSource(); +source.buffer = context.createBuffer(1, 1, context.sampleRate); +source.onended = + function(e) { + setTimeout( + function() { + var panner = context.createPanner(); + source.connect(panner); + panner.setVelocity(1.0, 0.0, 0.0); + setTimeout( + function() { + document.documentElement.removeAttribute("class"); + }, + 0); + }, + 0); + }; +source.start(0); +</script> diff --git a/dom/media/test/crashtests/media-element-source-seek-1.html b/dom/media/test/crashtests/media-element-source-seek-1.html new file mode 100644 index 000000000..5c3aed5ae --- /dev/null +++ b/dom/media/test/crashtests/media-element-source-seek-1.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var audioElement = document.createElement("audio"); +audioElement.autoplay = true; +audioElement.src = "sound.ogg"; +audioElement.onplaying = + function() { + audioElement.onplaying = null; + setTimeout( + function() { + audioElement.onseeked = + function() { + // Note we reset 'src' to release decoder resources and cubeb + // streams to prevent OOM or OpenCubeb() failures. + audioElement.src = ""; + document.documentElement.removeAttribute("class"); + }; + audioElement.currentTime = 0; + }, 100); + }; + +var context = new window.AudioContext(); +var source = context.createMediaElementSource(audioElement); +source.connect(context.destination); +</script> +</html> diff --git a/dom/media/test/crashtests/offline-buffer-source-ended-1.html b/dom/media/test/crashtests/offline-buffer-source-ended-1.html new file mode 100644 index 000000000..063102112 --- /dev/null +++ b/dom/media/test/crashtests/offline-buffer-source-ended-1.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +var context = new window.OfflineAudioContext(1, 12001, 12000); + +var source = context.createBufferSource(); +source.buffer = context.createBuffer(1, 12000, context.sampleRate); +source.onended = function(e) { + document.documentElement.removeAttribute("class"); +} +source.connect(context.destination); +source.start(0); + +context.startRendering(); +</script> diff --git a/dom/media/test/crashtests/oscillator-ended-1.html b/dom/media/test/crashtests/oscillator-ended-1.html new file mode 100644 index 000000000..831111261 --- /dev/null +++ b/dom/media/test/crashtests/oscillator-ended-1.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +function createContext() { + var context = new window.AudioContext(); + var source = context.createOscillator(); + source.onended = function(e) { + document.documentElement.removeAttribute("class"); + }; + source.connect(context.destination); + source.start(0.49); + source.stop(0.5); +} +createContext(); +</script> diff --git a/dom/media/test/crashtests/oscillator-ended-2.html b/dom/media/test/crashtests/oscillator-ended-2.html new file mode 100644 index 000000000..ee9b8cf30 --- /dev/null +++ b/dom/media/test/crashtests/oscillator-ended-2.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<script> +function createContext() { + var context = new window.AudioContext(); + var source = context.createOscillator(); + source.onended = function(e) { + document.documentElement.removeAttribute("class"); + }; + source.connect(context.destination); + source.start(60); + source.stop(0.5); +} +createContext(); +</script> diff --git a/dom/media/test/crashtests/sound.ogg b/dom/media/test/crashtests/sound.ogg Binary files differnew file mode 100644 index 000000000..edda4e912 --- /dev/null +++ b/dom/media/test/crashtests/sound.ogg diff --git a/dom/media/test/crashtests/video-crash.webm b/dom/media/test/crashtests/video-crash.webm Binary files differnew file mode 100644 index 000000000..9532113d8 --- /dev/null +++ b/dom/media/test/crashtests/video-crash.webm diff --git a/dom/media/test/crashtests/video-replay-after-audio-end.html b/dom/media/test/crashtests/video-replay-after-audio-end.html new file mode 100644 index 000000000..9ffd6078d --- /dev/null +++ b/dom/media/test/crashtests/video-replay-after-audio-end.html @@ -0,0 +1,43 @@ +<html class="reftest-wait"> +<head> + <title> Bug 1242774 : video crashed if pause and play again after audio track ends </title> +</head> +<body> +<script type="text/javascript"> +function assert(value, msg) { + if (!value) { + dump("### Error : " + msg + "\n"); + } +} + +var AUDIO_END_TIME = 4.5; +var video = document.createElement('video'); +video.src = "video-crash.webm"; +video.play(); + +video.ontimeupdate = function () { + assert(AUDIO_END_TIME < video.duration, + "AUDIO_END_TIME should be smaller than the duration!"); + + if (video.currentTime > AUDIO_END_TIME) { + dump("### Pause video during silent part.\n"); + video.ontimeupdate = null; + video.pause(); + } + + video.onpause = function () { + video.onpause = null; + setTimeout(function() { + dump("### Re-play after pausing during silent part.\n"); + video.play(); + video.onended = function () { + video.onended = null; + dump("### Video is ended.\n"); + document.documentElement.removeAttribute("class"); + } + }, 1000); + } +} +</script> +</body> +</html>
\ No newline at end of file |