async closeSession_(session) {
    try {
      await shaka.util.Functional.promiseWithTimeout(
          shaka.drm.DrmEngine.CLOSE_TIMEOUT_,
          Promise.all([session.close().catch(() => {}), session.closed]));
    } catch (e) {
      shaka.log.warning('Timeout waiting for session close');
    }
  }
Close a drm session while accounting for a bug in Chrome. Sometimes the
Promise returned by close() never resolves.

See issue #2741 and http://crbug.com/1108158.
@param {!MediaKeySession} session
@return {!Promise}
@private