async requestForTiming_(getBaseUris, uri, method) {
    const uris = [shaka.util.StringUtils.htmlUnescape(uri)];
    const requestUris =
        shaka.util.ManifestParserUtils.resolveUris(getBaseUris(), uris);
    const request = shaka.net.NetworkingEngine.makeRequest(
        requestUris, this.config_.retryParameters);
    request.method = method;
    const type = shaka.net.NetworkingEngine.RequestType.TIMING;

    const operation =
    this.playerInterface_.networkingEngine.request(
        type, request, {isPreload: this.isPreloadFn_()});
    this.operationManager_.manage(operation);

    const response = await operation.promise;
    let text;
    if (method == 'HEAD') {
      if (!response.headers || !response.headers['date']) {
        shaka.log.warning('UTC timing response is missing',
            'expected date header');
        return 0;
      }
      text = response.headers['date'];
    } else {
      text = shaka.util.StringUtils.fromUTF8(response.data);
    }
    const date = Date.parse(text);
    if (isNaN(date)) {
      shaka.log.warning('Unable to parse date from UTC timing response');
      return 0;
    }
    return (date - Date.now());
  }
Makes a request to the given URI and calculates the clock offset.

@param {function(): !Array<string>} getBaseUris
@param {string} uri
@param {string} method
@return {!Promise<number>}
@private