tor-browser

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

link-header-preload-imagesrcset.html (3239B)


      1 <!DOCTYPE html>
      2 <title>Makes sure that Link headers preload images with imagesrcset/imagesizes attributes.</title>
      3 <link rel="help" href="https://github.com/w3c/preload/issues/120">
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script src="/preload/resources/preload_helper.js"></script>
      7 <body>
      8 <script>
      9    setup({single_test: true});
     10 
     11    var iterations = 0;
     12    var expectation = new Array(10).fill(0);
     13    if (window.devicePixelRatio < 1.5) {
     14        expectation[0] = expectation[5] = expectation[8] = 1;
     15    } else if (window.devicePixelRatio >= 1.5) {
     16        expectation[1] = expectation[6] = expectation[9] = 1;
     17    }
     18 
     19    function check_finished() {
     20        if (numberOfResourceTimingEntries('resources/square.png?from-header&1x') == expectation[0] &&
     21            numberOfResourceTimingEntries('resources/square.png?from-header&2x') == expectation[1] &&
     22            numberOfResourceTimingEntries('resources/square.png?from-header&3x') == expectation[2] &&
     23            numberOfResourceTimingEntries('resources/square.png?from-header&base') == expectation[3] &&
     24            numberOfResourceTimingEntries('resources/square.png?from-header&200') == expectation[4] &&
     25            numberOfResourceTimingEntries('resources/square.png?from-header&400') == expectation[5] &&
     26            numberOfResourceTimingEntries('resources/square.png?from-header&800') == expectation[6] &&
     27            numberOfResourceTimingEntries('resources/square.png?from-header&150') == expectation[7] &&
     28            numberOfResourceTimingEntries('resources/square.png?from-header&300') == expectation[8] &&
     29            numberOfResourceTimingEntries('resources/square.png?from-header&600') == expectation[9]) {
     30            done();
     31        }
     32        iterations++;
     33        if (iterations == 10) {
     34            // At least one is expected to fail, but this should give details to the exact failure(s).
     35            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&1x', expectation[0]);
     36            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&2x', expectation[1]);
     37            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&3x', expectation[2]);
     38            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&base', expectation[3]);
     39            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&200', expectation[4]);
     40            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&400', expectation[5]);
     41            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&800', expectation[6]);
     42            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&150', expectation[7]);
     43            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&300', expectation[8]);
     44            verifyNumberOfResourceTimingEntries('resources/square.png?from-header&600', expectation[9]);
     45            done();
     46        } else {
     47            step_timeout(check_finished, 500);
     48        }
     49    }
     50 
     51    window.addEventListener("load", function() {
     52        verifyPreloadAndRTSupport();
     53        step_timeout(check_finished, 500);
     54    });
     55 </script>
     56 </body>