diff options
Diffstat (limited to 'testing/web-platform/tests/speculation-rules/prerender/restriction-window-resize.html')
-rw-r--r-- | testing/web-platform/tests/speculation-rules/prerender/restriction-window-resize.html | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/web-platform/tests/speculation-rules/prerender/restriction-window-resize.html b/testing/web-platform/tests/speculation-rules/prerender/restriction-window-resize.html new file mode 100644 index 0000000000..20a71b4bdb --- /dev/null +++ b/testing/web-platform/tests/speculation-rules/prerender/restriction-window-resize.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<meta name="timeout" content="long"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="resources/utils.js"></script> +<body> +<script> + +setup(() => assertSpeculationRulesIsSupported()); + +// ResizeTo and ResizeBy operations should be ignored. +// See https://github.com/jeremyroman/alternate-loading-modes/issues/73. +['resizeTo', 'resizeBy'].forEach(resizeFunc => { + promise_test( + async t => { + const uid = token(); + const bc = new PrerenderChannel('test-channel', uid); + t.add_cleanup(_ => bc.close()); + + const gotMessage = new Promise(resolve => { + bc.addEventListener('message', e => { + resolve(e.data); + }, {once: true}); + }); + + const url = `resources/window-resize.html?resize=${resizeFunc}&uid=${uid}`; + + // We have to open a new window to run the test, since a window that was + // not created by window.open() cannot be resized. + window.open( + url, '_blank', + `width=${window.screen.availWidth / 2},height=${ + window.screen.availHeight / 2},noopener`); + + const result = await gotMessage; + assert_equals(result.status, 'PASS'); + assert_equals( + result.prevRect.width, result.newRect.width, + 'width for prerendering'); + assert_equals( + result.prevRect.height, result.newRect.height, + 'height for prerendering'); + }, + `a prerendering page cannot resize its window by executing ${ + resizeFunc}.`); +}); + +</script> +</body> |