in 2020/harness/xhr.js [29:74]
this.open = function() {
this.xhr = new XMLHttpRequest();
this.onload = onload;
this.type = util.isValidArgument(postLength) ? 'POST' : 'GET';
this.xhr.open(this.type,
file + (BYPASS_CACHE ? '?' + (new Date()).getTime() : ''));
this.xhr.responseType = 'arraybuffer';
this.startTime = new Date().getTime();
this.lastUpdate = this.startTime;
if (start != null && length != null)
this.xhr.setRequestHeader(
'Range', 'bytes=' + start + '-' + (start + length - 1));
this.xhr.addEventListener('error', function(e) {
if (self.xhr.status === 404)
alert('Failed to find "' + file +
'" with error 404. Is it on the server?');
manager.requestFinished(self);
logger.log('XHR error with code', self.xhr.status);
self.open();
self.send();
});
this.xhr.addEventListener('timeout', function(e) {
manager.requestFinished(self);
logger.log('XHR timeout');
self.open();
self.send();
});
this.xhr.addEventListener('load', function(e) {
manager.requestFinished(self);
return self.onload(e);
});
this.xhr.addEventListener('progress', function onProgress(e) {
if (e.lengthComputable && (e.loaded === e.total)) {
self.xhr.removeEventListener('progress', onProgress);
}
self.lastUpdate = new Date().getTime();
});
};