Bug 957243. Fix test_bug602838.html to not assume server response ordering. r=mayhemer

This commit is contained in:
Boris Zbarsky 2014-07-29 21:33:17 -04:00
parent 531e8ee54e
commit da40c34bce

View File

@ -1,18 +1,37 @@
function setOurState(data) {
x = { data: data, QueryInterface: function(iid) { return this } };
x.wrappedJSObject = x;
setObjectState("bug602838", x);
}
function getOurState() {
var data;
getObjectState("bug602838", function(x) {
// x can be null if no one has set any state yet
if (x) {
data = x.wrappedJSObject.data;
}
});
return data;
}
function handleRequest(request, response)
{
if (request.queryString) {
let blockedResponse = null;
getObjectState("bug602838", function(x) { blockedResponse = x.wrappedJSObject.r });
blockedResponse.finish();
setObjectState("bug602838", null);
let blockedResponse = getOurState();
if (typeof(blockedResponse) == "object") {
blockedResponse.finish();
setOurState(null);
} else {
setOurState("unblocked");
}
return;
}
response.setHeader("Cache-Control", "no-cache", false);
response.setHeader("Content-Type", "text/javascript", false);
response.write("ok(asyncRan, 'Async script should have run first.'); firstRan = true;");
response.processAsync();
x = { r: response, QueryInterface: function(iid) { return this } };
x.wrappedJSObject = x;
setObjectState("bug602838", x);
if (getOurState() != "unblocked") {
response.processAsync();
setOurState(response);
}
}