Files
ladybird/Tests/LibWeb/Text/input/navigation/location-reload-srcdoc.html
Aliaksandr Kalenik 91377f3ab9 LibWeb: Fix always hanging Navigable::reload()
See spec issue https://github.com/whatwg/html/issues/9869

Previous attempt on fixing reload had to be reverted because it broke
Soundcloud and GitHub, but this change does not seem to introduce new
crashes.
2024-04-13 09:19:00 -07:00

42 lines
1.3 KiB
HTML

<!DOCTYPE html>
<script src="../include.js"></script>
<script>
let reloaded = false;
window.addEventListener('message', event => {
switch (event.data.action) {
case "loaded":
println("iframe is loaded");
if (!reloaded) {
event.source.postMessage({ action: 'reload' });
reloaded = true;
} else {
internals.signalTextTestIsDone();
}
break;
case "acknowledge-asked-to-reload":
println("iframe is going to reload");
break;
default:
break;
}
});
const iframeScript = `
window.addEventListener('message', event => {
if (event.data && event.data.action === 'reload') {
window.parent.postMessage({ action: 'acknowledge-asked-to-reload' });
location.reload();
}
});
window.addEventListener('load', () => {
window.parent.postMessage({ action: 'loaded' });
});
`;
document.addEventListener("DOMContentLoaded", () => {
const iframe = document.createElement('iframe');
iframe.srcdoc = "<script>" + iframeScript + "<\/script>";
document.body.appendChild(iframe);
});
</script>