onLoadingFailed(data) {
    // On some requests DevTools can send duplicate events, prefer the first one for best timing data
    if (this.finished) return;

    this.finished = true;
    this.networkEndTime = data.timestamp * 1000;

    this.failed = true;
    this.resourceType = data.type && RESOURCE_TYPES[data.type];
    this.localizedFailDescription = data.errorText;

    this._updateResponseHeadersEndTimeIfNecessary();
    this._backfillReceiveHeaderStartTiming();
    this._updateTransferSizeForLightrider();
    this._updateTimingsForLightrider();
  }
@param {LH.Crdp.Network.LoadingFailedEvent} data