this.open = function()

in 2019/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();
    });
  };