test_animation_api.html (2218B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1382545 5 --> 6 <head> 7 <meta charset="utf-8"> 8 <title>Test for Bug 1382545</title> 9 <script src="/tests/SimpleTest/SimpleTest.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 11 <script type="application/javascript"> 12 13 /** Test for Bug 1382545 */ 14 SimpleTest.waitForExplicitFinish(); 15 16 // Used by file_animation_api.html 17 var prefName = ""; 18 var expectedPrecision = 0; 19 var resistFingerprinting = false; 20 var reduceTimerPrecision = false; 21 22 function runTest() { 23 // No matter what we set the precision to, if we're in ResistFingerprinting mode 24 // we use the larger of the precision pref and the constant RFP time-atom 25 if (resistFingerprinting) { 26 const RFP_TIME_ATOM_MS = 16.667; 27 expectedPrecision = Math.max(1000*RFP_TIME_ATOM_MS, expectedPrecision); 28 } 29 window.open("file_animation_api.html"); 30 } 31 32 function setupTest(rfp, rtp, ep) { 33 // Set globals 34 expectedPrecision = ep; 35 resistFingerprinting = rfp; 36 reduceTimerPrecision = rtp; 37 prefName = ""; 38 prefName += resistFingerprinting ? "privacy.resistFingerprinting " : ""; 39 prefName += reduceTimerPrecision ? "privacy.reduceTimerPrecision " : ""; 40 SpecialPowers.pushPrefEnv({"set": 41 [ 42 ["privacy.resistFingerprinting", resistFingerprinting], 43 ["privacy.reduceTimerPrecision", reduceTimerPrecision], 44 ["privacy.resistFingerprinting.reduceTimerPrecision.microseconds", expectedPrecision], 45 ], 46 }, runTest); 47 } 48 49 var testIndx = 0; 50 var testSequence = [ 51 [true, false, 100000], 52 [false, true, 100000], 53 [true, false, 50000], 54 [false, true, 50000], 55 [true, false, 100], 56 [false, true, 100], 57 [true, true, 13], 58 [false, true, 13], 59 ]; 60 61 window.onload = () => { 62 setupTest(testSequence[testIndx][0], testSequence[testIndx][1], testSequence[testIndx][2]); 63 }; 64 65 function done() { 66 testIndx++; 67 if (testIndx == testSequence.length) { 68 SimpleTest.finish(); 69 } else { 70 setupTest(testSequence[testIndx][0], testSequence[testIndx][1], testSequence[testIndx][2]); 71 } 72 } 73 </script> 74 </head> 75 <body> 76 </body> 77 </html>