summaryrefslogtreecommitdiffstats
path: root/layout/generic/test/file_SlowPage.sjs
diff options
context:
space:
mode:
Diffstat (limited to 'layout/generic/test/file_SlowPage.sjs')
-rw-r--r--layout/generic/test/file_SlowPage.sjs43
1 files changed, 43 insertions, 0 deletions
diff --git a/layout/generic/test/file_SlowPage.sjs b/layout/generic/test/file_SlowPage.sjs
new file mode 100644
index 0000000000..1860e8cbc9
--- /dev/null
+++ b/layout/generic/test/file_SlowPage.sjs
@@ -0,0 +1,43 @@
+"use strict";
+
+let timer;
+
+const DELAY_MS = 5000;
+
+function handleRequest(request, response) {
+ response.processAsync();
+
+ response.setHeader("Content-Type", "text/html", false);
+
+ // Include paint_listener.js so that we can call waitForAllPaintsFlushed
+ // on the window in which this is opened.
+ response.write(
+ '<script type="text/javascript" src="/tests/SimpleTest/paint_listener.js"></script>'
+ );
+
+ // Allow the opening window to react to loading being complete.
+ response.write('<body onload="window.opener.fullyLoaded()">');
+
+ // Send half of the content.
+ for (let i = 0; i < 100; ++i) {
+ response.write("<p>Some text.</p>");
+ }
+
+ // Allow the opening window to react to being partially loaded.
+ response.write("<script>window.opener.partiallyLoaded();</script>");
+
+ // Wait for 5 seconds, then send the rest of the content.
+ timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+ timer.init(
+ () => {
+ for (let i = 0; i < 100; ++i) {
+ response.write("<p>Some text.</p>");
+ }
+ response.write("</body>");
+
+ response.finish();
+ },
+ DELAY_MS,
+ Ci.nsITimer.TYPE_ONE_SHOT
+ );
+}