<!
DOCTYPE HTML>
<!-- vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: -->
<
html>
<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
<
head>
<
script src=
"/tests/SimpleTest/SimpleTest.js"></
script>
</
head>
<
body>
<
iframe id=
"f" src=
"about:blank"></
iframe>
<
script type=
"text/javascript">
SimpleTest.waitForExplicitFinish();
var script = SpecialPowers.loadChromeScript(() => {
/* eslint-env mozilla/chrome-script */
Services.obs.addObserver(function onExamResp(subject) {
let channel = subject.QueryInterface(Ci.nsIHttpChannel);
if (!channel.URI.spec.startsWith(
"http://example.org")) {
return;
}
Services.obs.removeObserver(onExamResp,
'http-on-examine-response');
channel.suspend();
Promise.resolve().then(() => {
channel.resume();
});
},
'http-on-examine-response');
sendAsyncMessage(
'start-test');
});
script.addMessageListener(
'start-test', () => {
const
iframe = document.getElementById(
'f');
iframe.contentWindow.onunload = function () {
info(
'initiate sync XHR during the page loading');
let xhr = new XMLHttpRequest();
xhr.open(
'GET', window.location, false);
xhr.send(null);
ok(true,
'complete without crash');
script.destroy();
SimpleTest.finish();
}
iframe.src =
'http://example.org';
});
</
script>
</
body>
</
html>