mirror of
https://github.com/RGBCube/serenity
synced 2025-05-30 19:38:12 +00:00
83 lines
2.9 KiB
HTML
83 lines
2.9 KiB
HTML
<script src="../include.js"></script>
|
|
<script>
|
|
function filename(path) {
|
|
url = new URL(path)
|
|
return url.pathname.split('/').pop() + url.hash
|
|
}
|
|
asyncTest(async done => {
|
|
if (window.self === window.top) {
|
|
test(() => {});
|
|
return;
|
|
}
|
|
|
|
try {
|
|
parent.postMessage(`Initial history length is ${navigation.entries().length}`, "*");
|
|
|
|
navigation.oncurrententrychange = (e) => {
|
|
parent.postMessage(`${e.type} for change to ${filename(navigation.currentEntry.url)} of type ${e.navigationType} from ${filename(e.from.url)}`, "*");
|
|
}
|
|
|
|
navigation.onnavigate = (e) => {
|
|
parent.postMessage(`NavigateEvent for ${e.navigationType} ${filename(e.destination.url)} (Same document? ${e.destination.sameDocument}) with info: ${e.info}`, "*")
|
|
}
|
|
|
|
// Navigate to fragment
|
|
let a = navigation.navigate("navigation-navigate-iframe.html#1", { info: 42, history: "push" });
|
|
|
|
await a.committed.then((f) => {
|
|
parent.postMessage(`Committed to navigation to ${filename(f.url)}`, "*");
|
|
},
|
|
(e) => {
|
|
parent.postMessage("ERROR:" + e, "*", "*");
|
|
})
|
|
|
|
await a.finished.then((f) => {
|
|
parent.postMessage(`Finished navigation to ${filename(f.url)}`, "*");
|
|
},
|
|
(e) => {
|
|
parent.postMessage("ERROR:" + e, "*");
|
|
})
|
|
|
|
parent.postMessage(`History length after navigate is ${navigation.entries().length}`, "*");
|
|
|
|
// FIXME: Enable these tests 😅
|
|
// Navigate backwards
|
|
// let b = navigation.back()
|
|
// await b.committed.then((f) => {
|
|
// parent.postMessage(`Committed to back navigation to ${filename(f.url)}`, "*");
|
|
// },
|
|
// (e) => {
|
|
// parent.postMessage("ERROR:" + e, "*", "*");
|
|
// })
|
|
// await b.finished.then((f) => {
|
|
// parent.postMessage(`Finished back navigation to ${filename(f.url)}`, "*");
|
|
// },
|
|
// (e) => {
|
|
// parent.postMessage("ERROR:" + e, "*");
|
|
// })
|
|
|
|
// parent.postMessage(`History length after back is ${navigation.entries().length}`, "*");
|
|
|
|
// Navigate forwards
|
|
// let c = navigation.forward()
|
|
// await c.committed.then((f) => {
|
|
// parent.postMessage(`Committed to forward navigation to ${filename(f.url)}`, "*");
|
|
// },
|
|
// (e) => {
|
|
// parent.postMessage("ERROR:" + e, "*", "*");
|
|
// })
|
|
// await c.finished.then((f) => {
|
|
// parent.postMessage(`Finished forward navigation to ${filename(f.url)}`, "*");
|
|
// },
|
|
// (e) => {
|
|
// parent.postMessage("ERROR:" + e, "*");
|
|
// })
|
|
|
|
// parent.postMessage(`History length after forward is ${navigation.entries().length}`, "*");
|
|
|
|
} catch (e) {
|
|
parent.postMessage("ERROR:" + e, "*");
|
|
}
|
|
parent.postMessage("DONE", "*");
|
|
});
|
|
</script>
|