summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-aboutblank.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-aboutblank.html')
-rw-r--r--testing/web-platform/tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-aboutblank.html81
1 files changed, 81 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-aboutblank.html b/testing/web-platform/tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-aboutblank.html
new file mode 100644
index 0000000000..f3033d6a21
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/window-open-aboutblank.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>Navigations on window.open(about:blank) after waiting for it to load</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/helpers.js"></script>
+<body></body>
+<script>
+/*
+ When a new window is opened through window.open() it will contain the initial
+ empty document. If the URL parameter is set to about:blank, it will stay on
+ the initial empty document (unlike iframes with src="about:blank", which will
+ start a navigation to a non-initial about:blank document).
+ These tests verify the behavior of navigations that happen on the initial
+ empty document in that situation. They should all be converted to do a
+ replacement.
+*/
+"use strict";
+const url1 = "resources/code-injector.html?1&pipe=sub(none)&code=" +
+ encodeURIComponent(postMessageToOpenerOnLoad);
+const url2 = "resources/code-injector.html?2&pipe=sub(none)&code=" +
+ encodeURIComponent(postMessageToOpenerOnLoad);
+
+promise_test(async t => {
+ // Open a window with URL about:blank, which will commit the
+ // initial empty document and stay on it.
+ const openedWindow = windowOpenAboutBlank(t);
+
+ // Unlike iframe with src="about:blank", window.open("about:blank") won't
+ // trigger a navigation to a non-initial about:blank document, so it should
+ // stay on the initial empty document. To verify, wait for 100ms before
+ // continuing.
+ await new Promise((resolve) => t.step_timeout(resolve, 100));
+
+ // Navigate away from the initial empty document through location.href.
+ // This should do a replacement.
+ openedWindow.location.href = url1;
+ await waitForMessage(t, "loaded");
+ assert_equals(openedWindow.history.length, 1,
+ "history.length should not increase after normal navigation away from initial empty document");
+}, "location.href");
+
+promise_test(async t => {
+ // Open a window with URL about:blank, which will commit the
+ // initial empty document and stay on it.
+ const openedWindow = windowOpenAboutBlank(t);
+
+ // Unlike iframe with src="about:blank", window.open("about:blank") won't
+ // trigger a navigation to a non-initial about:blank document, so it should
+ // stay on the initial empty document. To verify, wait for 100ms before
+ // continuing.
+ await new Promise((resolve) => t.step_timeout(resolve, 100));
+
+ // Navigate away from the initial empty document through location.assign().
+ // This should do a replacement.
+ openedWindow.location.assign(url1);
+ await waitForMessage(t, "loaded");
+ assert_equals(openedWindow.history.length, 1,
+ "history.length should not increase after normal navigation away from initial empty document");
+}, "location.assign");
+/*
+promise_test(async t => {
+ // Open a window with URL about:blank, which will commit the
+ // initial empty document and stay on it.
+ const openedWindow = windowOpenAboutBlank(t);
+
+ // Unlike iframe with src="about:blank", window.open("about:blank") won't
+ // trigger a navigation to a non-initial about:blank document, so it should
+ // stay on the initial empty document. To verify, wait for 100ms before
+ // continuing.
+ await new Promise((resolve) => t.step_timeout(resolve, 100));
+
+ // Navigate away from the initial empty document through window.open().
+ // This should do a replacement.
+ openedWindow.open(url1, "_self");
+ await waitForMessage(t, "loaded");
+ assert_equals(openedWindow.history.length, 1,
+ "history.length should not increase after normal navigation away from initial empty document");
+}, "window.open");
+*/
+</script>