123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /**
- * Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
- function runTest() {
- var xhr = new XMLHttpRequest();
- var events = [];
- function pushEvent(event) {
- var readyState, responseText, status, statusText;
- try {
- readyState = xhr.readyState;
- }
- catch (e) {
- readyState = "[exception]";
- }
- try {
- responseText = xhr.responseText;
- }
- catch (e) {
- responseText = "[exception]";
- }
- try {
- status = xhr.status;
- }
- catch (e) {
- status = "[exception]";
- }
- try {
- statusText = xhr.statusText;
- }
- catch (e) {
- statusText = "[exception]";
- }
- var str = event.type + "(" + readyState + ", '" + responseText + "', " +
- status + ", '" + statusText + "'";
- if ((("ProgressEvent" in this) && event instanceof ProgressEvent) ||
- (("WorkerProgressEvent" in this) && event instanceof WorkerProgressEvent)) {
- str += ", progressEvent";
- }
- str += ")";
- events.push(str);
- }
- xhr.onerror = function(event) {
- throw new Error("Error: " + xhr.statusText);
- }
- xhr.onload = function(event) {
- throw new Error("Shouldn't have gotten load event!");
- };
- var seenAbort;
- xhr.onabort = function(event) {
- if (seenAbort) {
- throw new Error("Already seen the abort event!");
- }
- seenAbort = true;
- pushEvent(event);
- postMessage(events);
- };
- xhr.onreadystatechange = function(event) {
- pushEvent(event);
- if (xhr.readyState == xhr.HEADERS_RECEIVED) {
- xhr.abort();
- }
- };
- xhr.open("GET", "worker_testXHR.txt");
- xhr.overrideMimeType("text/plain");
- xhr.send(null);
- }
- function messageListener(event) {
- switch (event.data) {
- case "start":
- runTest();
- break;
- default:
- throw new Error("Bad message!");
- }
- }
- addEventListener("message", messageListener, false);
|