tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_convolverNodeOOM.html (1157B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test ConvolverNode with very large buffer that triggers an OOM</title>
      5  <script 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">
     12 
     13 var gTest = {
     14  length: 2048,
     15  numberOfChannels: 1,
     16  skipOfflineContextTests: true,
     17  createGraph(context) {
     18    var source = context.createOscillator();
     19    var convolver = context.createConvolver();
     20    // Very big buffer that results in an OOM
     21    try {
     22      var buffer = context.createBuffer(2, 300000000, context.sampleRate)
     23      buffer.getChannelData(0);
     24    } catch(e) {
     25      // OOM when attempting to create the buffer, this can happen on 32bits
     26      // OSes. Simply return here.
     27      return convolver;
     28    }
     29    source.connect(convolver);
     30    try {
     31      convolver.buffer = buffer;
     32    } catch (e) {
     33      // This can also OOM.
     34      return convolver;
     35    }
     36    source.start();
     37    return convolver;
     38  }
     39 };
     40 
     41 runTest();
     42 
     43 </script>
     44 </pre>
     45 </body>
     46 </html>