enqueueOperation_(contentType, start, uri) {
    this.destroyer_.ensureNotDestroyed();
    const operation = {
      start: start,
      p: new shaka.util.PublicPromise(),
      uri,
    };
    this.queues_.get(contentType).push(operation);

    if (this.queues_.get(contentType).length == 1) {
      this.startOperation_(contentType);
    }
    return operation.p;
  }
Enqueue an operation and start it if appropriate.

@param {shaka.util.ManifestParserUtils.ContentType} contentType
@param {function()} start
@param {?string} uri
@return {!Promise}
@private