From 9a325877b053ef636acb892df1e945eaeea5a212 Mon Sep 17 00:00:00 2001 From: Dominic Farolino Date: Wed, 26 Jul 2023 12:24:05 -0700 Subject: [PATCH] Matches about:blank WPTs This CL adds WPTs for https://github.com/whatwg/html/pull/9558, which uses the "matches about:blank" definition [1] in two places where "about:blank" URL equivalence checks currently are. [1]: https://html.spec.whatwg.org/#matches-about:blank R=domenic@chromium.org Bug: N/A Change-Id: I840f445d3c7224f70a09e481f3e5727422ca2d83 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4718105 Reviewed-by: Domenic Denicola Commit-Queue: Dominic Farolino Cr-Commit-Position: refs/heads/main@{#1175589} --- .../matches-about-blank-base-url.window.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 html/infrastructure/urls/base-url/matches-about-blank-base-url.window.js diff --git a/html/infrastructure/urls/base-url/matches-about-blank-base-url.window.js b/html/infrastructure/urls/base-url/matches-about-blank-base-url.window.js new file mode 100644 index 00000000000000..b2a0740ddf7cfc --- /dev/null +++ b/html/infrastructure/urls/base-url/matches-about-blank-base-url.window.js @@ -0,0 +1,29 @@ +// Verify that an iframe whose URL "matches about:blank" [1] uses its about base +// URL and initiator/creator origin. +// +// [1]: https://html.spec.whatwg.org/#matches-about:blank +onload = () => { + async_test(t => { + const iframe = document.createElement('iframe'); + // Navigate the iframe away from the initial about:blank Document [1] to + // isolate the effects of a "matches about:blank" URL. + // + // [1]: https://html.spec.whatwg.org/#is-initial-about:blank + iframe.src = '/common/blank.html'; + + iframe.addEventListener('load', e => { + assert_equals(iframe.contentWindow.location.pathname, '/common/blank.html'); + + // Navigate the iframe to a URL that "matches about:blank" but isn't exactly + // "about:blank". + iframe.onload = t.step_func_done(() => { + assert_equals(iframe.contentDocument.URL, 'about:blank?query#fragment'); + assert_equals(iframe.contentWindow.origin, window.origin); + assert_equals(iframe.contentDocument.baseURI, document.baseURI); + }); + iframe.src = 'about:blank?query#fragment'; + }, {once: true}); + + document.body.appendChild(iframe); + }, "about:blank and about:blank?foo#bar both 'match about:blank'"); +};