| Index: third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
|
| diff --git a/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html b/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
|
| index 54f2afcd73ef43243bc34d838e57e1955b0b3029..2c402e5bd3e2aa5e989985759b583f71d2834f5b 100644
|
| --- a/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
|
| +++ b/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
|
| @@ -4,12 +4,14 @@
|
| <script src="../../resources/testharnessreport.js"></script>
|
| <script src="../trusted-click.js"></script>
|
| <div id="log"></div>
|
| -<div id="parent"><div></div></div>
|
| +<div id="parent"><div><div></div></div></div>
|
| <script>
|
| // Adapted from https://github.com/w3c/web-platform-tests/pull/4250
|
| // TODO(foolip): Remove this test when the above is imported and passing.
|
| async_test(t => {
|
| const parent = document.getElementById("parent");
|
| + const child = parent.firstChild;
|
| + const grandChild = child.firstChild;
|
|
|
| document.onfullscreenchange = t.step_func(() => {
|
| // We are now in fullscreen, so exiting requires a resize but requesting
|
| @@ -20,23 +22,26 @@ async_test(t => {
|
| // Request fullscreen on another element, to avoid any synchronous
|
| // short-circuiting on document.fullscreenElement.requestFullscreen(),
|
| // which used to be in the spec. Also request both before and after the
|
| - // exit. Both requests should be silently ignored due to the exit.
|
| + // exit. Both requests synchronously enqueue animation frame tasks. They
|
| + // may run after exiting, but still before the animation frame task for
|
| + // the exit, and so both will succeed, and there will be 3
|
| + // fullscreenchange events, but not matching the order of the calls.
|
|
|
| - let fullscreenchanges = 0;
|
| - document.onfullscreenchange = t.step_func((event) => {
|
| - assert_equals(document.fullscreenElement, child);
|
| - fullscreenchanges++;
|
| - if (fullscreenchanges == 3)
|
| + let i = 0;
|
| + const expected = [child, grandChild, null];
|
| + document.onfullscreenchange = t.step_func(() => {
|
| + assert_equals(document.fullscreenElement, expected[i], "fullscreenElement when i=" + i);
|
| + i++;
|
| + if (i == 3)
|
| t.done();
|
| });
|
|
|
| - const child = parent.firstChild;
|
| child.requestFullscreen();
|
| - assert_equals(document.fullscreenElement, child, "fullscreenElement after first requestFullscreen()");
|
| + assert_equals(document.fullscreenElement, parent, "fullscreenElement after first requestFullscreen()");
|
| document.exitFullscreen();
|
| assert_equals(document.fullscreenElement, parent, "fullscreenElement after exitFullscreen()");
|
| - child.requestFullscreen();
|
| - assert_equals(document.fullscreenElement, child, "fullscreenElement after second requestFullscreen()");
|
| + grandChild.requestFullscreen();
|
| + assert_equals(document.fullscreenElement, parent, "fullscreenElement after second requestFullscreen()");
|
| }), parent);
|
| });
|
| document.onfullscreenerror = t.unreached_func("fullscreenerror event");
|
|
|