tor-browser

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

onload-event.html (3103B)


      1 <!DOCTYPE html>
      2 <title>Makes sure that preloaded resources trigger the onload event</title>
      3 <meta name="timeout" content="long">
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script src="/preload/resources/preload_helper.js"></script>
      7 <script>
      8    var scriptLoaded = false;
      9    var styleLoaded = false;
     10    var imageLoaded = false;
     11    var fontLoaded = false;
     12    var videoLoaded = false;
     13    var audioLoaded = false;
     14    var trackLoaded = false;
     15    var gibberishLoaded = false;
     16    var gibberishErrored = false;
     17    var noTypeLoaded = false;
     18    var fetchLoaded = false;
     19 </script>
     20 <link rel=preload href="resources/dummy.js" as=script onload="scriptLoaded = true;">
     21 <link rel=preload href="resources/dummy.css" as=style onload="styleLoaded = true;">
     22 <link rel=preload href="resources/square.png" as=image onload="imageLoaded = true;">
     23 <link rel=preload href="/fonts/CanvasTest.ttf" as=font crossorigin onload="fontLoaded = true;">
     24 <link rel=preload href="resources/white.mp4" as=video onload="videoLoaded = true;">
     25 <link rel=preload href="resources/sound_5.oga" as=audio onload="audioLoaded = true;">
     26 <link rel=preload href="resources/foo.vtt" as=track onload="trackLoaded = true;">
     27 <link rel=preload href="resources/dummy.xml?foo=bar" as=foobarxmlthing onload="gibberishLoaded = true;" onerror="gibberishErrored = true;">
     28 <link rel=preload href="resources/dummy.xml?fetch" as=fetch onload="fetchLoaded = true;">
     29 <link rel=preload href="resources/dummy.xml" onload="noTypeLoaded = true;">
     30 <body>
     31 <script>
     32    setup({single_test: true});
     33 
     34    var iterations = 0;
     35 
     36    function check_finished() {
     37        if (styleLoaded && scriptLoaded && imageLoaded && fontLoaded && videoLoaded && audioLoaded &&
     38            trackLoaded && !gibberishLoaded && !gibberishErrored && fetchLoaded && !noTypeLoaded) {
     39            done();
     40        }
     41        iterations++;
     42        if (iterations == 10) {
     43            // At least one is expected to fail, but this should give details to the exact failure(s).
     44            assert_true(styleLoaded, "style triggered load event");
     45            assert_true(scriptLoaded, "script triggered load event");
     46            assert_true(imageLoaded, "image triggered load event");
     47            assert_true(fontLoaded, "font triggered load event");
     48            assert_true(videoLoaded, "video triggered load event");
     49            assert_true(audioLoaded, "audio triggered load event");
     50            assert_true(trackLoaded, "track triggered load event");
     51            assert_false(gibberishLoaded, "gibberish as value triggered load event");
     52            assert_false(gibberishErrored, "gibberish as value triggered error event");
     53            assert_true(fetchLoaded, "fetch as value triggered load event");
     54            assert_false(noTypeLoaded, "empty as triggered load event");
     55            done();
     56        } else {
     57            step_timeout(check_finished, 500);
     58        }
     59    }
     60 
     61    window.addEventListener("load", function() {
     62        verifyPreloadAndRTSupport();
     63        step_timeout(check_finished, 500);
     64    });
     65 </script>
     66 </body>