test_mediaStreamTrackAudioSourceNodeCrossOrigin.html (1451B)
1 <!DOCTYPE HTML> 2 <html> 3 <meta charset="utf-8"> 4 <head> 5 <title>Test MediaStreamTrackAudioSourceNode doesn't get data from cross-origin media resources</title> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 SimpleTest.waitForExplicitFinish(); 13 14 const CROSS_ORIGIN_URL = "http://example.org:80/tests/dom/media/webaudio/test/sine-440-10s.opus" 15 let iterationCount = 0; 16 let context = null; 17 let sp; 18 19 function processSamples(e) { 20 ++iterationCount; 21 22 let buf = e.inputBuffer.getChannelData(0); 23 let nonzeroSamplesThisBuffer = 0; 24 for (let i = 0; i < buf.length; ++i) { 25 if (buf[i] != 0) { 26 ++nonzeroSamplesThisBuffer; 27 } 28 } 29 is(nonzeroSamplesThisBuffer, 0, 30 "a source that is cross origin cannot be inspected by Web Audio"); 31 32 if (iterationCount == 40) { 33 sp.onaudioprocess = null; 34 context.close(); 35 SimpleTest.finish(); 36 } 37 } 38 39 let audio = new Audio(); 40 audio.src = CROSS_ORIGIN_URL; 41 audio.onloadedmetadata = function () { 42 context = new AudioContext(); 43 let stream = audio.mozCaptureStream(); 44 let track = stream.getAudioTracks()[0]; 45 let node = context.createMediaStreamTrackSource(track); 46 node.connect(context.destination); 47 sp = context.createScriptProcessor(2048, 1); 48 sp.onaudioprocess = processSamples; 49 node.connect(sp); 50 } 51 52 </script> 53 </pre> 54 </body>