| <html> | |
| <head> | |
| <title>Test XmlHttpRequest onreadystatechange being called for each chunk of data</title> | |
| <body> | |
| <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=7392">bug 7392</a>: | |
| GMAIL: XMLHttpRequest does not correctly report "Interactive" state on receipt of load data.</p> | |
| <script> | |
| if (window.testRunner) { | |
| testRunner.dumpAsText(); | |
| testRunner.waitUntilDone(); | |
| } | |
| var console_messages = document.createElement("ol"); | |
| document.body.appendChild(console_messages); | |
| var count = 0; | |
| function log(message) | |
| { | |
| var item = document.createElement("li"); | |
| item.appendChild(document.createTextNode(message)); | |
| console_messages.appendChild(item); | |
| } | |
| function get(url, async) | |
| { | |
| if (window.XMLHttpRequest) { | |
| req = new XMLHttpRequest(); | |
| } else { | |
| try { | |
| req = new ActiveXObject("Msxml2.XMLHTTP"); | |
| } catch (ex) { | |
| req = new ActiveXObject("Microsoft.XMLHTTP"); | |
| } | |
| } | |
| req.onreadystatechange = processStateChange; | |
| req.open('GET', url, async); | |
| req.send(null); | |
| if (!async && req.status != 200) | |
| throw ("HTTP request failed, status: " + req.status); | |
| return req; | |
| } | |
| function processStateChange(){ | |
| if (req.readyState == 3) | |
| ++count; | |
| else if (req.readyState == 4) { | |
| log((count > 1) ? "SUCCESS" : "FAILURE (count = " + count + ")"); | |
| if (window.testRunner) | |
| testRunner.notifyDone(); | |
| } | |
| } | |
| // start async steps | |
| get('interactive-state.cgi', true); | |
| </script> | |
| </body> | |
| </html> |