tor-browser

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

onerror-event.html (3183B)


      1 <!DOCTYPE html>
      2 <html>
      3 <title>Makes sure that preloaded resources trigger the onerror event</title>
      4 <meta name="timeout" content="long">
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="/preload/resources/preload_helper.js"></script>
      8 <script>
      9    var scriptFailed = false;
     10    var styleFailed = false;
     11    var imageFailed = false;
     12    var fontFailed = false;
     13    var videoFailed = false;
     14    var audioFailed = false;
     15    var trackFailed = false;
     16    var gibberishFailed = false;
     17    var fetchFailed = false;
     18 </script>
     19 <link rel=preload href="http://invalid/dummy.js" as=script onerror="scriptFailed = true;">
     20 <link rel=preload href="http://invalid/dummy.css" as=style onerror="styleFailed = true;">
     21 <link rel=preload href="http://invalid/square.png" as=image onerror="imageFailed = true;">
     22 <link rel=preload href="http://invalid/Ahem.ttf" as=font crossorigin onerror="fontFailed = true;">
     23 <link rel=preload href="http://invalid/test.mp4" as=video onerror="videoFailed = true;">
     24 <link rel=preload href="http://invalid/test.oga" as=audio onerror="audioFailed = true;">
     25 <link rel=preload href="http://invalid/security/captions.vtt" as=track onerror="trackFailed = true;">
     26 <link rel=preload href="http://invalid/dummy.xml?fetch" as=fetch onerror="fetchFailed = true;">
     27 <link rel=preload href="http://invalid/dummy.xml?foo" as=foobarxmlthing onerror="assert_unreached('invalid as value should not fire error event')">
     28 <link rel=preload href="http://invalid/dummy.xml?empty" onerror="assert_unreached('empty as value should not fire error event')">
     29 <link rel=preload href="http://invalid/dummy.xml?media" as=style media=print onerror="assert_unreached('non-matching media should not fire error event')">
     30 <link rel=preload href="http://invalid/dummy.xml?media" as=style type='text/html' onerror="assert_unreached('invalid mime type should not fire error event')">
     31 <body>
     32 <script>
     33    setup({single_test: true});
     34 
     35    var iterations = 0;
     36 
     37    function check_finished() {
     38        if (styleFailed && scriptFailed && imageFailed && fontFailed && videoFailed && audioFailed &&
     39            trackFailed && fetchFailed) {
     40            done();
     41        }
     42        iterations++;
     43        if (iterations == 10) {
     44            // At least one is expected to fail, but this should give details to the exact failure(s).
     45            assert_true(styleFailed, "style triggered error event");
     46            assert_true(scriptFailed, "script triggered error event");
     47            assert_true(imageFailed, "image triggered error event");
     48            assert_true(fontFailed, "font triggered error event");
     49            assert_true(videoFailed, "video triggered error event");
     50            assert_true(audioFailed, "audio triggered error event");
     51            assert_true(trackFailed, "track triggered error event");
     52            assert_true(fetchFailed, "fetch as triggered error event");
     53            done();
     54        } else {
     55            step_timeout(check_finished, 500);
     56        }
     57    }
     58 
     59    window.addEventListener("load", function() {
     60        verifyPreloadAndRTSupport();
     61        step_timeout(check_finished, 500);
     62    });
     63 </script>
     64 </body>
     65 </html>