tor-browser

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

mediasource-preload.html (3098B)


      1 <!DOCTYPE html>
      2 <!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
      3 <html>
      4    <head>
      5        <title>Various MediaSource HTMLMediaElement preload tests.</title>
      6        <link rel="author" title="Matthew Wolenetz" href="mailto:wolenetz@chromium.org"/>
      7        <script src="/resources/testharness.js"></script>
      8        <script src="/resources/testharnessreport.js"></script>
      9    </head>
     10    <body>
     11        <script>
     12            function attachWithPreloadTest(preload)
     13            {
     14                async_test(function(test)
     15                {
     16                    var video = document.createElement("video");
     17                    var mediaSource = new MediaSource();
     18                    var mediaSourceURL = URL.createObjectURL(mediaSource);
     19 
     20                    video.preload = preload;
     21                    document.body.appendChild(video);
     22                    test.add_cleanup(function() {
     23                        document.body.removeChild(video);
     24                        URL.revokeObjectURL(mediaSourceURL);
     25                    });
     26 
     27                    mediaSource.addEventListener("sourceopen", test.step_func_done());
     28                    video.src = mediaSourceURL;
     29                }, "sourceopen occurs with element preload=" + preload);
     30            }
     31 
     32            attachWithPreloadTest("auto");
     33            attachWithPreloadTest("metadata");
     34            attachWithPreloadTest("none");
     35 
     36            function errorWithPreloadTest(preload, bogusURLStyle)
     37            {
     38                async_test(function(test)
     39                {
     40                    var mediaSource = new MediaSource();
     41                    var bogusURL = URL.createObjectURL(mediaSource);
     42 
     43                    if (bogusURLStyle == "corrupted") {
     44                        var goodURL = bogusURL;
     45                        test.add_cleanup(function() { URL.revokeObjectURL(goodURL); });
     46                        bogusURL += "0";
     47                    } else if (bogusURLStyle == "revoked") {
     48                        URL.revokeObjectURL(bogusURL);
     49                    } else {
     50                        assert_unreached("invalid case");
     51                    }
     52 
     53                    var video = document.createElement("video");
     54                    video.preload = preload;
     55                    document.body.appendChild(video);
     56                    test.add_cleanup(function() { document.body.removeChild(video); });
     57 
     58                    mediaSource.addEventListener("sourceopen", test.unreached_func("'sourceopen' should not be fired"));
     59 
     60                    video.onerror = test.step_func_done();
     61                    video.src = bogusURL;
     62                }, "error occurs with bogus blob URL (" + bogusURLStyle + " MediaSource object URL) and element preload=" + preload);
     63            }
     64 
     65            errorWithPreloadTest("auto", "revoked");
     66            errorWithPreloadTest("metadata", "revoked");
     67 
     68            errorWithPreloadTest("auto", "corrupted");
     69            errorWithPreloadTest("metadata", "corrupted");
     70        </script>
     71    </body>
     72 </html>