mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-08 17:47:18 +00:00
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.
42 lines
1.3 KiB
HTML
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>
|