| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>XMLHttpRequest: make timeouts bigger than default timeout</title> |
| <script src="/js-test-resources/testharness.js"></script> |
| <script src="/js-test-resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script type="text/javascript"> |
| |
| promise_test((test) => { |
| return new Promise((resolve, reject) => { |
| var xhr = new XMLHttpRequest(); |
| var startTime = new Date(); |
| xhr.open('GET', "/misc/resources/delayed-log.php?delay=10000000", true); |
| |
| xhr.timeout = 70000; // time in milliseconds |
| |
| xhr.onabort = () => { reject("onabort is called"); } |
| xhr.onload = () => { reject("onload is called"); }; |
| xhr.onerror = () => { reject("onerror is called"); }; |
| xhr.onloadend = () => { reject("onloadend is called but ontimeout was not"); }; |
| |
| xhr.ontimeout = function (e) { |
| var elapsed = new Date() - startTime; |
| if (elapsed > 65000 || elapsed < 55000) { |
| reject("elapsed time should be close to 60000 but is " + elapsed); |
| return; |
| } |
| resolve(); |
| }; |
| |
| xhr.send(null); |
| |
| xhr.timeout = 0; |
| }); |
| }, "Resetting a timeout to zero after sending the request"); |
| |
| </script> |
| </body> |
| </html> |
| |