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 <domenic@chromium.org>
Commit-Queue: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1175589}
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 0000000..b2a0740
--- /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'");
+};