async getCompressibleRecords(context, networkRecords) {
    const session = context.driver.defaultSession;
    const textRecords = ResponseCompression.filterUnoptimizedResponses(networkRecords);

    return Promise.all(textRecords.map(record => {
      return fetchResponseBodyFromCache(session, record.requestId).then(content => {
        // if we don't have any content, gzipSize is already set to 0
        if (!content) {
          return record;
        }

        return new Promise((resolve, reject) => {
          return gzip(content, (err, res) => {
            if (err) {
              return reject(err);
            }

            // get gzip size
            record.gzipSize = Buffer.byteLength(res, 'utf8');

            resolve(record);
          });
        });
      }).catch(err => {
        const isExpectedError = err?.message?.includes('No resource with given identifier found');
        if (!isExpectedError) {
          err.extra = {url: UrlUtils.elideDataURI(record.url)};
          throw err;
        }

        log.error('ResponseCompression', err.message);
        record.gzipSize = undefined;
        return record;
      });
    }));
  }
@param {LH.Gatherer.Context} context
@param {LH.Artifacts.NetworkRequest[]} networkRecords
@return {Promise<LH.Artifacts['ResponseCompression']>}