initial import
[vuplus_webkit] / Source / WebCore / manual-tests / eventsource / eventsource-loader-buffering.html
1 <!doctype html>
2 <html>
3 <head>
4 <title>EventSource Loader Buffering</title>
5 <script>
6 window.onload = function () {
7     setTimeout(test_es, 500);
8 };
9
10 function test_es() {
11     var len = 0;
12     var count = 0;
13     var step = 1000;
14     var es = new EventSource("eventsource-loader-buffering.php");
15     es.onopen = function () {
16         log("got 'open' event");
17         log("waiting for the first " + step + " 'message' events");
18     };
19     es.onmessage = function (evt) {
20         len += evt.data.length;
21         if (++count % step)
22             return;
23         log("got " + count + " 'message' events (" + len + " characters)", 1);
24         if (len >= 1e9)
25             end();
26     };
27     es.onerror = function () {
28         log("got 'error' event");
29         end();
30     };
31     function end() {
32         if (es.readyState != es.CLOSED)
33             es.close();
34         log("ENDED");
35     };
36 }
37
38 function log(message, updateLast) {
39     if (!log.list)
40         log.list = document.getElementById("log");
41     var text = document.createTextNode(message);
42     if (updateLast)
43         log.list.lastChild.replaceChild(text, log.list.lastChild.firstChild);
44     else
45         log.list.appendChild(document.createElement("li")).appendChild(text);
46 }
47 </script>
48 </head>
49 <body>
50 <p>Manual test to verify that the EventSource loader does not buffer data (may result in memory growth with long lived connections). Monitor memory usage; it should be stable. This file has to be served from the same web server as the php script with the same name.</p>
51 <ul id="log" style="list-style-type: none"></ul>
52 </body>
53 </html>
54