tor-browser

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

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>