"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 (let 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 (let i = 0; i < 100; ++i) { response.write("

Some text.

"); } response.write(""); response.finish(); }, DELAY_MS, Ci.nsITimer.TYPE_ONE_SHOT ); }