tor-browser

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

performanceobservers.js (1496B)


      1 // Compares a performance entry to a predefined one
      2 // perfEntriesToCheck is an array of performance entries from the user agent
      3 // expectedEntries is an array of performance entries minted by the test
      4 function checkEntries(perfEntriesToCheck, expectedEntries) {
      5  function findMatch(pe) {
      6    // we match based on entryType and name
      7    for (var i = expectedEntries.length - 1; i >= 0; i--) {
      8      var ex = expectedEntries[i];
      9      if (ex.entryType === pe.entryType && ex.name === pe.name) {
     10        return ex;
     11      }
     12    }
     13    return null;
     14  }
     15 
     16  assert_equals(perfEntriesToCheck.length, expectedEntries.length, "performance entries must match");
     17 
     18  perfEntriesToCheck.forEach(function (pe1) {
     19    assert_not_equals(findMatch(pe1), null, "Entry matches");
     20  });
     21 }
     22 
     23 // Waits for performance.now to advance. Since precision reduction might
     24 // cause it to return the same value across multiple calls.
     25 function wait() {
     26  var now = performance.now();
     27  while (now === performance.now())
     28    continue;
     29 }
     30 
     31 // Ensure the entries list is sorted by startTime.
     32 function checkSorted(entries) {
     33  assert_not_equals(entries.length, 0, "entries list must not be empty");
     34  if (!entries.length)
     35    return;
     36 
     37  var sorted = false;
     38  var lastStartTime = entries[0].startTime;
     39  for (var i = 1; i < entries.length; ++i) {
     40    var currStartTime = entries[i].startTime;
     41    assert_less_than_equal(lastStartTime, currStartTime, "entry list must be sorted by startTime");
     42    lastStartTime = currStartTime;
     43  }
     44 }