diff options
Diffstat (limited to 'dom/base/test/fullscreen/file_fullscreen-event-order.html')
-rw-r--r-- | dom/base/test/fullscreen/file_fullscreen-event-order.html | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/dom/base/test/fullscreen/file_fullscreen-event-order.html b/dom/base/test/fullscreen/file_fullscreen-event-order.html new file mode 100644 index 0000000000..72fb2c9b47 --- /dev/null +++ b/dom/base/test/fullscreen/file_fullscreen-event-order.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<script src="/tests/SimpleTest/EventUtils.js"></script> +<script src="/tests/SimpleTest/SimpleTest.js"></script> +<script src="file_fullscreen-utils.js"></script> +<iframe src="empty.html" allowfullscreen></iframe> +<script> +function ok(condition, msg) { + opener.ok(condition, "[event-order] " + msg); +} +function is(a, b, msg) { + opener.is(a, b, "[event-order] " + msg); +} + +let fullscreenEvents = []; +let iframe, iframeDoc; + +function begin() { + iframe = document.querySelector("iframe"); + iframeDoc = iframe.contentDocument; + document.addEventListener("fullscreenchange", evt => { + fullscreenEvents.push(evt); + }); + iframeDoc.addEventListener("fullscreenchange", evt => { + fullscreenEvents.push(evt); + }); + addFullscreenChangeContinuation("enter", enterFullscreen); + iframeDoc.body.requestFullscreen(); +} + +function assertFullscreenEvents(action) { + is(fullscreenEvents.length, 2, + "Two documents should have event dispatched for " + action); + is(fullscreenEvents[0].target, iframe, + "Root document should have the event dispatched first after " + action); + is(fullscreenEvents[1].target, iframeDoc.body, + "Inner document should have the event dispatched second after " + action); +} + +function enterFullscreen() { + assertFullscreenEvents("requestFullscreen"); + fullscreenEvents = []; + addFullscreenChangeContinuation("exit", exitFullscreen); + document.exitFullscreen(); +} + +function exitFullscreen() { + assertFullscreenEvents("exitFullscreen"); + opener.nextTest(); +} +</script> |