Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
michael@0 | 1 | <!DOCTYPE HTML> |
michael@0 | 2 | <html> |
michael@0 | 3 | <head> |
michael@0 | 4 | <title>Test interactions of src and srcObject</title> |
michael@0 | 5 | <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> |
michael@0 | 6 | <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> |
michael@0 | 7 | <script type="text/javascript" src="manifest.js"></script> |
michael@0 | 8 | </head> |
michael@0 | 9 | <body onload="doTest()"> |
michael@0 | 10 | <audio id="a"></audio> |
michael@0 | 11 | <pre id="test"> |
michael@0 | 12 | <script class="testbody" type="text/javascript"> |
michael@0 | 13 | SimpleTest.waitForExplicitFinish(); |
michael@0 | 14 | |
michael@0 | 15 | var a = document.getElementById('a'); |
michael@0 | 16 | a.src = getPlayableAudio(gSmallTests).name; |
michael@0 | 17 | |
michael@0 | 18 | var b = new Audio(); |
michael@0 | 19 | |
michael@0 | 20 | function doTest() { |
michael@0 | 21 | var newSrc = a.src + "?2"; |
michael@0 | 22 | b.src = newSrc; |
michael@0 | 23 | is(b.mozSrcObject, null, "Initial srcObject is null"); |
michael@0 | 24 | var stream = a.mozCaptureStream(); |
michael@0 | 25 | b.mozSrcObject = stream; |
michael@0 | 26 | is(b.mozSrcObject, stream, "Stream set correctly"); |
michael@0 | 27 | try { |
michael@0 | 28 | b.mozSrcObject = "invalid"; |
michael@0 | 29 | ok(false, "Setting mozSrcObject to an invalid value should throw."); |
michael@0 | 30 | } catch (e) { |
michael@0 | 31 | ok(e instanceof TypeError, "Exception should be a TypeError"); |
michael@0 | 32 | } |
michael@0 | 33 | is(b.mozSrcObject, stream, "Stream not set to invalid value"); |
michael@0 | 34 | is(b.src, newSrc, "src attribute not affected by setting srcObject"); |
michael@0 | 35 | var step = 0; |
michael@0 | 36 | b.addEventListener("loadedmetadata", function() { |
michael@0 | 37 | if (step == 0) { |
michael@0 | 38 | is(b.currentSrc, "", "currentSrc set to empty string while playing srcObject"); |
michael@0 | 39 | b.mozSrcObject = null; |
michael@0 | 40 | is(b.mozSrcObject, null, "Stream set to null"); |
michael@0 | 41 | // The resource selection algorithm will run again and choose b.src |
michael@0 | 42 | } else if (step == 1) { |
michael@0 | 43 | is(b.currentSrc, b.src, "currentSrc set to src now that srcObject is null"); |
michael@0 | 44 | SimpleTest.finish(); |
michael@0 | 45 | } |
michael@0 | 46 | ++step; |
michael@0 | 47 | }); |
michael@0 | 48 | } |
michael@0 | 49 | </script> |
michael@0 | 50 | </pre> |
michael@0 | 51 | </body> |
michael@0 | 52 | </html> |