Index: third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-timing-manual.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-timing-manual.html b/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-timing-manual.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f91eb7e2a7690610c370edca11b31251f0fcd2e5 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-timing-manual.html |
@@ -0,0 +1,33 @@ |
+<!DOCTYPE html> |
+<title>Document#exitFullscreen() timing</title> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script src="../trusted-click.js"></script> |
+<div id="log"></div> |
+<script> |
+async_test(t => { |
+ const div = document.querySelector('div'); |
+ trusted_request(div); |
+ |
+ document.onfullscreenchange = t.step_func(() => { |
+ // We are now in fullscreen. Exit again. |
+ assert_equals(document.fullscreenElement, div); |
+ document.exitFullscreen(); |
+ |
+ // If fullscreenchange is an animation frame event, then animation frame |
+ // callbacks should be run after it is fired, before the timer callback. |
+ // The resize event should fire before the fullscreenchange event. |
+ const events = []; |
+ const callback = t.step_func(event => { |
+ events.push(event.type); |
+ if (event.type == 'fullscreenchange') { |
+ setTimeout(t.unreached_func('timer callback')); |
+ requestAnimationFrame(t.step_func_done(() => { |
+ assert_array_equals(events, ['resize', 'fullscreenchange'], 'event order'); |
+ })); |
+ } |
+ }); |
+ document.onfullscreenchange = window.onresize = callback; |
+ }); |
+}, 'Timing of fullscreenchange and resize events'); |
+</script> |