content/media/webaudio/test/test_audioBufferSourceNodeNeutered.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <title>Test AudioBufferSourceNode when an AudioBuffer's getChanneData array is neutered</title>
     5   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <script type="text/javascript" src="webaudio.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">
    13 function createGarbage() {
    14   var s = [];
    15   for (var i = 0; i < 10000000; ++i) {
    16     s.push(i);
    17   }
    18   var sum = 0;
    19   for (var i = 0; i < s.length; ++i) {
    20     sum += s[i];
    21   }
    22   return sum;
    23 }
    25 var worker = new Worker("audioBufferSourceNodeNeutered_worker.js");
    27 var gTest = {
    28   length: 2048,
    29   numberOfChannels: 1,
    30   createGraph: function(context) {
    31     var buffer = context.createBuffer(1, 10000000, context.sampleRate);
    32     var data = buffer.getChannelData(0);
    33     for (var i = 0; i < data.length; ++i) {
    34       data[i] = (i%100)/100 - 0.5;
    35     }
    37     // Neuter the buffer now
    38     var data = buffer.getChannelData(0).buffer;
    39     worker.postMessage(data, [data]);
    40     // Create garbage and GC to replace the buffer data with garbage
    41     SpecialPowers.gc();
    42     createGarbage();
    43     SpecialPowers.gc();
    45     var source = context.createBufferSource();
    46     source.buffer = buffer;
    47     source.start();
    48     // This should play silence
    49     return source;
    50   },
    51 };
    53 runTest();
    55 </script>
    56 </pre>
    57 </body>
    58 </html>

mercurial