| <!doctype html> |
| <title>autoplay with slow text tracks</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/media.js"></script> |
| <div id="log"></div> |
| <script> |
| // https://html.spec.whatwg.org/#ready-states says: |
| // |
| // HAVE_FUTURE_DATA: "the text tracks are ready". |
| // HAVE_ENOUGH_DATA: All the conditions described for the HAVE_FUTURE_DATA state are met, ... |
| // |
| // When the ready state of a media element whose networkState is not NETWORK_EMPTY changes, |
| // the user agent must follow the steps given below: |
| // If the new ready state is HAVE_ENOUGH_DATA |
| // (autoplay) |
| // |
| // So if the text tracks are not yet ready, we can't autoplay. |
| |
| single_test(); |
| var started = 0; |
| var numOfTests = 5; |
| |
| function createTest() { |
| var video = document.createElement('video'); |
| video.src = getVideoURI('/media/movie_5'); |
| video.autoplay = true; |
| video.muted = true; |
| video.controls = true; |
| video.onplaying = function() { |
| started++; |
| assert_equals(track.track.cues.length, 1); |
| if (started === numOfTests) { |
| done(); |
| } |
| }; |
| var track = document.createElement('track'); |
| track.src = '/media/foo.vtt?pipe=trickle(d2)'; |
| track.default = true; |
| video.appendChild(track); |
| document.body.appendChild(video); |
| } |
| for (var i = 0; i < numOfTests; ++i) { |
| createTest(); |
| } |
| </script> |