static resolveUris(baseUris, relativeUris, extraQueryParams = '') {
    if (relativeUris.length == 0) {
      return baseUris;
    }

    if (baseUris.length == 1 && relativeUris.length == 1) {
      const baseUri = new goog.Uri(baseUris[0]);
      const relativeUri = new goog.Uri(relativeUris[0]);
      const resolvedUri = baseUri.resolve(relativeUri);
      if (extraQueryParams) {
        resolvedUri.setQueryData(extraQueryParams);
      }
      return [resolvedUri.toString()];
    }

    const relativeAsGoog = relativeUris.map((uri) => new goog.Uri(uri));

    // For each base URI, this code resolves it with every relative URI.
    // The result is a single array containing all the resolved URIs.
    const resolvedUris = [];
    for (const baseStr of baseUris) {
      const base = new goog.Uri(baseStr);
      for (const relative of relativeAsGoog) {
        const resolvedUri = base.resolve(relative);
        if (extraQueryParams) {
          resolvedUri.setQueryData(extraQueryParams);
        }
        resolvedUris.push(resolvedUri.toString());
      }
    }

    return resolvedUris;
  }
Resolves an array of relative URIs to the given base URIs. This will result
in M*N number of URIs.

Note: This method is slow in SmartTVs and Consoles. It should only be
called when necessary.

@param {!Array<string>} baseUris
@param {!Array<string>} relativeUris
@param {string=} extraQueryParams
@return {!Array<string>}