diff options
Diffstat (limited to 'parser/htmlparser/tests/mochitest/file_bug655682.sjs')
-rw-r--r-- | parser/htmlparser/tests/mochitest/file_bug655682.sjs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/parser/htmlparser/tests/mochitest/file_bug655682.sjs b/parser/htmlparser/tests/mochitest/file_bug655682.sjs new file mode 100644 index 000000000..2b5316b2d --- /dev/null +++ b/parser/htmlparser/tests/mochitest/file_bug655682.sjs @@ -0,0 +1,37 @@ +var timer; +var callback; + +function handleRequest(request, response) +{ + if (request.queryString.indexOf("trigger") != -1) { + setState("triggered", "triggered"); + response.setHeader("Cache-Control", "no-cache", false); + response.setHeader("Content-Type", "text/javascript; charset=utf-8", false); + response.write(";"); + } else { + // Reset the state when running more than once in same browser session. + setState("triggered", ""); + + response.processAsync(); + response.setHeader("Cache-Control", "no-cache", false); + response.setHeader("Content-Type", "text/html; charset=utf-8", false); + response.write("<table><tr><td>A</td> "); + response.bodyOutputStream.flush(); + timer = Components.classes["@mozilla.org/timer;1"] + .createInstance(Components.interfaces.nsITimer); + + callback = function() { + if (getState("triggered") == "triggered") { + response.write("<td>B</td></tr></table>"); + response.finish(); + } else { + timer.initWithCallback(callback, + 10, + Components.interfaces.nsITimer.TYPE_ONE_SHOT); + } + } + timer.initWithCallback(callback, + 10, + Components.interfaces.nsITimer.TYPE_ONE_SHOT); + } +} |