Commit 355eef15 authored by Thomas Guilbert's avatar Thomas Guilbert Committed by Commit Bot

Use video.rAF to deflake fullscreen test

This CL changes video fullscreen tests to wait on one frame being
painted, in an attempt to make them more reliable. The CL also updates
the test expectations.

Bug: 1025291
Change-Id: I80de51215b1d009f6e5ae99e2808c9223cb89ce6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2025932Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
Commit-Queue: Thomas Guilbert <tguilbert@chromium.org>
Cr-Commit-Position: refs/heads/master@{#737049}
parent f4dc9b1c
...@@ -6108,7 +6108,6 @@ crbug.com/892983 external/wpt/css/css-pseudo/first-line-with-before-after.html [ ...@@ -6108,7 +6108,6 @@ crbug.com/892983 external/wpt/css/css-pseudo/first-line-with-before-after.html [
crbug.com/1025123 external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html [ Pass Failure ] crbug.com/1025123 external/wpt/longtask-timing/longtask-in-sibling-iframe-crossorigin.html [ Pass Failure ]
crbug.com/1025321 [ Win ] http/tests/devtools/tracing/console-timeline.js [ Pass Failure ] crbug.com/1025321 [ Win ] http/tests/devtools/tracing/console-timeline.js [ Pass Failure ]
crbug.com/1025321 [ Win ] virtual/threaded/http/tests/devtools/tracing/console-timeline.js [ Pass Failure ] crbug.com/1025321 [ Win ] virtual/threaded/http/tests/devtools/tracing/console-timeline.js [ Pass Failure ]
crbug.com/1025291 [ Linux ] virtual/android/fullscreen/video-scrolled-iframe.html [ Pass Failure ]
crbug.com/1025437 virtual/not-site-per-process/http/tests/devtools/debugger/fetch-breakpoints.js [ Timeout Pass ] crbug.com/1025437 virtual/not-site-per-process/http/tests/devtools/debugger/fetch-breakpoints.js [ Timeout Pass ]
# Sheriff 2019-11-18 # Sheriff 2019-11-18
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<script src="full-screen-test.js"></script> <script src="full-screen-test.js"></script>
<script> <script>
var initialized = false; var initialized = false;
var fullscreened = false;
window.onmessage = function(messageEvent) { window.onmessage = function(messageEvent) {
if (!initialized) { if (!initialized) {
// video has been loaded and messaged us. // video has been loaded and messaged us.
...@@ -19,10 +20,18 @@ ...@@ -19,10 +20,18 @@
eventSender.mouseUp(); eventSender.mouseUp();
} }
initialized = true; initialized = true;
} else { return;
}
if (!fullscreened) {
// The video has been fullscreened.
consoleWrite(messageEvent.data); consoleWrite(messageEvent.data);
endTest(); fullscreened = true;
return;
} }
// A third message is received when the video has painted a frame.
endTest();
} }
</script> </script>
Video inside an iframe is allowed to enter fullscreen</p> Video inside an iframe is allowed to enter fullscreen</p>
......
<!DOCTYPE html> <!DOCTYPE html>
<script> <script>
let video;
function canplaythrough() { function canplaythrough() {
parent.postMessage("Video loaded", "*"); parent.postMessage("Video loaded", "*");
} }
function fullscreenChanged() { function fullscreenChanged() {
parent.postMessage("SUCCEED - entered full screen!", "*"); parent.postMessage("SUCCEED - entered full screen!", "*");
video.requestAnimationFrame(framePainted);
}
function framePainted() {
parent.postMessage("Video frame painted.", "*");
} }
onload = function() { onload = function() {
var video = document.getElementById('video'); video = document.getElementById('video');
var mediaFile = "../../media/content/test.ogv"; var mediaFile = "../../media/content/test.ogv";
video.src = mediaFile; video.src = mediaFile;
video.addEventListener('canplaythrough', canplaythrough); video.addEventListener('canplaythrough', canplaythrough);
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<script src="../../../fullscreen/full-screen-test.js"></script> <script src="../../../fullscreen/full-screen-test.js"></script>
<script> <script>
var initialized = false; var initialized = false;
var fullscreened = false;
window.onmessage = function(messageEvent) { window.onmessage = function(messageEvent) {
if (!initialized) { if (!initialized) {
window.scrollTo(0, 100); window.scrollTo(0, 100);
...@@ -19,10 +20,18 @@ ...@@ -19,10 +20,18 @@
eventSender.mouseUp(); eventSender.mouseUp();
} }
initialized = true; initialized = true;
} else { return;
}
if (!fullscreened) {
// The video has been fullscreened.
consoleWrite(messageEvent.data); consoleWrite(messageEvent.data);
endTest(); fullscreened = true;
return;
} }
// A third message is received when the video has painted a frame.
endTest();
} }
</script> </script>
<iframe id="frame" src="../../../fullscreen/resources/video.html" width="320" height="240" allowfullscreen></iframe> <iframe id="frame" src="../../../fullscreen/resources/video.html" width="320" height="240" allowfullscreen></iframe>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment