static async addFont(name, url) {
    if (!('fonts' in document && 'FontFace' in window)) {
      return;
    }
    await document.fonts.ready;
    if (!('entries' in document.fonts)) {
      return;
    }
    const fontFaceSetIteratorToArray = (target) => {
      const iterable = target.entries();
      const results = [];
      let iterator = iterable.next();
      while (iterator.done === false) {
        results.push(iterator.value);
        iterator = iterable.next();
      }
      return results;
    };
    for (const fontFace of fontFaceSetIteratorToArray(document.fonts)) {
      if (fontFace.family === name && fontFace.display === 'swap') {
        // Font already loaded.
        return;
      }
    }
    const fontFace = new FontFace(name, `url(${url})`, {display: 'swap'});
    document.fonts.add(fontFace);
  }
Load a new font on the page. If the font was already loaded, it does
nothing.

@param {string} name
@param {string} url
@return {!Promise<void>}