| <body> |
| <div id=logdiv></div> |
| <script> |
| if (window.internals) { |
| internals.settings.setVideoPlaybackRequiresUserGesture(false); |
| internals.settings.setRequiresUserGestureToLoadVideo(false); |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| const random = Math.floor(Math.random()*10000000000); |
| |
| function loadTestMedia() { |
| return new Promise((resolve) => { |
| const media = document.createElement("video"); |
| media.src = `/resources/test.mp4?${random}`; |
| media.oncanplaythrough = () => resolve(media); |
| media.autoplay = true; |
| document.body.appendChild(media); |
| }); |
| } |
| |
| function logResponses(media, expectedSource) |
| { |
| let pass = true; |
| const ranges = internals.mediaResponseContentRanges(media); |
| const sources = internals.mediaResponseSources(media); |
| for (i = 0; i < ranges.length; ++i) { |
| if (sources[i] != expectedSource) { |
| logdiv.innerHTML += `FAIL: Range ${ranges[i]} from ${sources[i]} expected ${expectedSource}<br>`; |
| pass = false; |
| } |
| } |
| if (pass) |
| logdiv.innerHTML += `PASS: All response ranges from: ${expectedSource}<br>`; |
| } |
| |
| async function test() { |
| logdiv.innerHTML += "First load<br>"; |
| logResponses(await loadTestMedia(), "Network"); |
| |
| logdiv.innerHTML += "Second Load<br>"; |
| logResponses(await loadTestMedia(), "Network"); |
| |
| testRunner.notifyDone(); |
| } |
| |
| test(); |
| </script> |