static async compute_(data) {
    const indexedNetworkRecords = ImageRecords.indexNetworkRecords(data.networkRecords);

    /** @type {LH.Artifacts.ImageElementRecord[]} */
    const imageRecords = [];

    for (const element of data.ImageElements) {
      const networkRecord = indexedNetworkRecords[element.src];
      const mimeType = networkRecord?.mimeType;

      // Don't change the guessed mime type if no mime type was found.
      imageRecords.push({
        ...element,
        mimeType: mimeType ? mimeType : UrlUtils.guessMimeType(element.src),
      });
    }

    // Sort (in-place) as largest images descending.
    imageRecords.sort((a, b) => {
      const aRecord = indexedNetworkRecords[a.src] || {};
      const bRecord = indexedNetworkRecords[b.src] || {};
      return bRecord.resourceSize - aRecord.resourceSize;
    });

    return imageRecords;
  }
@param {{ImageElements: LH.Artifacts['ImageElements'], networkRecords: LH.Artifacts.NetworkRequest[]}} data
@return {Promise<LH.Artifacts.ImageElementRecord[]>}