| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Test that containing block changes are reflected when going fullscreen</title> |
| </head> |
| <body> |
| <!-- will-change: transform creates a containing-block for fixed positioned elements, but the top layer overrides it ---> |
| <div style="height: 400px; width: 400px; will-change: transform;"> |
| <!-- container-type: size triggers layout during style resolution --> |
| <div style="container-type: size; background-color: lightgreen; width: 100%; height: 100%;" id="target"> |
| <p>Test passes if the greenyellow/lightgreen area fills the screen after going fullscreen.</p> |
| <button onclick="target.requestFullscreen()">Go fullscreen</button> |
| <!-- Add extra positioned child to make sure descendants are also properly laid out--> |
| <div id=child style="position: absolute; left: 0; right: 0; top: 100px; bottom: 0; background-color: greenyellow;"></div> |
| </div> |
| </div> |
| <script src="full-screen-test.js"></script> |
| <script> |
| async function test() { |
| await new Promise((resolve) => { |
| addEventListener("fullscreenchange", resolve, { once: true }); |
| runWithKeyDown(() => { |
| target.requestFullscreen(); |
| }); |
| }); |
| |
| testExpected("target.offsetWidth > 400", true); |
| testExpected("target.offsetHeight > 400", true); |
| testExpected("child.offsetWidth > 400", true); |
| testExpected("child.offsetHeight > 400", true); |
| endTest(); |
| } |
| |
| test(); |
| </script> |
| </body> |
| </html> |