async load(uri = '', ...params) {
    debugApp('Load page', uri);
    this.loadURI_ = uri;
    this.loadParams_ = params;
    await this.initializeInterception_();
    debugApp('Navigating the page to', this.loadURI_);

    const result = new Promise(f => this.domContentLoadedCallback_ = f);
    // Await here to process exceptions.
    await this.page_.goto(new URL(this.loadURI_, 'https://domain/').toString(), {timeout: 0, waitFor: 'domcontentloaded'});
    // Available in Chrome M73+.
    this.session_.send('Page.resetNavigationHistory').catch(e => {});
    // Make sure domContentLoaded callback is processed before we return.
    // That indirection is here to handle debug-related reloads we did not call for.
    return result;
  }
@param {string=} uri
@param {...*} params
@return {!Promise}