Revision 9f72b689165309d4b959f3dbc724f18fe9a77111 authored by Mike West on 05 April 2018, 12:29:12 UTC, committed by Chromium WPT Sync on 05 April 2018, 12:29:12 UTC
This patch adjusts the `SecureContext` IDL attribute to take an argument,
as we need to restrict the relevant bits and pieces to secure contexts
iff a specific flag is set. We'll unfortunately need to keep that in place
until and unless we decide that we can reasonably remove an enterprise
opt-out.

Intent to Deprecate/Remove: https://groups.google.com/a/chromium.org/d/msg/blink-dev/ANnafFBhReY/1Xdr53KxBAAJ
Spec bug: https://github.com/whatwg/html/issues/3440

Bug: 588931
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I5bedd2ca6f420a88ddbcff65e4223fad224ac0a7
Reviewed-on: https://chromium-review.googlesource.com/982625
Reviewed-by: Yoav Weiss <yoav@yoav.ws>
Reviewed-by: Yuki Shiino <yukishiino@chromium.org>
Reviewed-by: Hitoshi Yoshida <peria@chromium.org>
Commit-Queue: Mike West <mkwst@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548391}
1 parent d725f2a
Raw File
timing-attack.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>window.performance.now should not enable timing attacks</title>
<link rel="author" title="W3C" href="http://www.w3.org/" />
<link rel="help" href="http://w3c.github.io/hr-time/#privacy-security"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(function() {
  function check_resolutions(times, length) {
    var end = length - 2;

    // we compare each value with the following ones
    for (var i = 0; i < end; i++) {
      var h1 = times[i];
      for (var j = i+1; j < end; j++) {
        var h2 = times[j];
        var diff = h2 - h1;
        assert_true((diff === 0) || ((diff * 1000) >= 5),
          "Differences smaller than 5 microseconds: " + diff);
      }
    }
    return true;
  }

  var times = new Array(10);
  var index = 0;
  var hrt1, hrt2, hrt;

  // rapid firing of performance.now
  hrt1 = performance.now();
  hrt2 = performance.now();
  times[index++] = hrt1;
  times[index++] = hrt2;

  // ensure that we get performance.now() to return a different value
  do {
    hrt = performance.now();
    times[index++] = hrt;
  } while ((hrt - hrt1) === 0);

  assert_true(check_resolutions(times, index), 'Difference should be at least 5 microseconds.');
}, 'The recommended minimum resolution of the Performance interface has been set to 5 microseconds');
</script>
</head>
<body>
<h1>Description</h1>
<p>The recommended minimum resolution of the Performance interface should be set to 5 microseconds.</p>

<div id="log"></div>

</body>
</html>
back to top