"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(""); // Allow the opening window to react to loading being complete. response.write("
"); // Send half of the content. for (var i = 0; i < 100; ++i) { response.write("Some text.
"); } // Allow the opening window to react to being partially loaded. response.write(""); // Wait for 5 seconds, then send the rest of the content. timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); timer.init(() => { for (var i = 0; i < 100; ++i) { response.write("Some text.
"); } response.write(""); response.finish(); }, DELAY_MS, Ci.nsITimer.TYPE_ONE_SHOT); }