_onResponse(response, timestamp, resourceType) {
    this.url = response.url;

    this.connectionId = response.connectionId;
    this.connectionReused = response.connectionReused;

    if (response.protocol) this.protocol = response.protocol;

    this.responseTimestamp = timestamp * 1000;

    this.transferSize = response.encodedDataLength;
    this.responseHeadersTransferSize = response.encodedDataLength;
    if (typeof response.fromDiskCache === 'boolean') this.fromDiskCache = response.fromDiskCache;
    if (typeof response.fromPrefetchCache === 'boolean') {
      this.fromPrefetchCache = response.fromPrefetchCache;
    }

    this.statusCode = response.status;

    this.timing = response.timing;
    if (resourceType) this.resourceType = RESOURCE_TYPES[resourceType];
    this.mimeType = response.mimeType;
    this.responseHeaders = NetworkRequest._headersDictToHeadersArray(response.headers);

    this.fetchedViaServiceWorker = !!response.fromServiceWorker;

    if (this.fromMemoryCache) this.timing = undefined;
    if (this.timing) this._recomputeTimesWithResourceTiming(this.timing);
  }
@param {LH.Crdp.Network.Response} response
@param {number} timestamp in seconds
@param {LH.Crdp.Network.ResponseReceivedEvent['type']=} resourceType