diff --git a/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html b/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html new file mode 100644 index 00000000000000..9aab36b9862742 --- /dev/null +++ b/html/browsers/browsing-the-web/history-traversal/srcdoc/consecutive-srcdoc.html @@ -0,0 +1,85 @@ + + +changing srcdoc to a different srcdoc + + + + + + diff --git a/html/browsers/browsing-the-web/history-traversal/srcdoc/srcdoc-history-entries.html b/html/browsers/browsing-the-web/history-traversal/srcdoc/srcdoc-history-entries.html new file mode 100644 index 00000000000000..09f4094c5f6eaa --- /dev/null +++ b/html/browsers/browsing-the-web/history-traversal/srcdoc/srcdoc-history-entries.html @@ -0,0 +1,95 @@ + + +srcdoc history entries + + + + + + diff --git a/html/browsers/browsing-the-web/resources/has-iframe.html b/html/browsers/browsing-the-web/resources/has-iframe.html new file mode 100644 index 00000000000000..e6dfba1011a971 --- /dev/null +++ b/html/browsers/browsing-the-web/resources/has-iframe.html @@ -0,0 +1,7 @@ + + + diff --git a/html/browsers/browsing-the-web/resources/helpers.js b/html/browsers/browsing-the-web/resources/helpers.js new file mode 100644 index 00000000000000..2a894fccccae1e --- /dev/null +++ b/html/browsers/browsing-the-web/resources/helpers.js @@ -0,0 +1,49 @@ +window.openWindow = (url, t) => { + const w = window.open(url); + t?.add_cleanup(() => w.close()); + + return new Promise(resolve => { + w.addEventListener("load", () => resolve(w), { once: true }); + }); +}; + +window.addIframe = (url = "/common/blank.html", doc = document) => { + const iframe = doc.createElement("iframe"); + iframe.src = url; + doc.body.append(iframe); + + return new Promise(resolve => { + iframe.addEventListener("load", () => resolve(iframe), { once: true }); + }); +}; + +window.waitToAvoidReplace = t => { + return new Promise(resolve => t.step_timeout(resolve, 0)); +}; + +window.waitForMessage = expectedSource => { + return new Promise(resolve => { + window.addEventListener("message", ({ source, data }) => { + if (source === expectedSource) { + resolve(data); + } + }); + }); +}; + +window.waitForHashchange = w => { + return new Promise(resolve => { + w.addEventListener("hashchange", () => resolve(), { once: true }); + }); +}; + +window.srcdocThatPostsParentOpener = text => { + return ` +

${text}

+