onComplete = () => {
      const err = lib.f.lastError();
      if (err) {
        // Doesn't seem to be any better way of handling this.
        // https://crbug.com/764759
        if (err.indexOf('MAX_WRITE_OPERATIONS')) {
          console.warn(`Will retry '${key}' save after exceeding quota:`, err);
          setTimeout(() => this.setItem(key, value).then(onComplete), 1000);
          return;
        } else {
          console.error(`Unknown runtime error: ${err}`);
        }
      }

      resolve();
    }
Set a value in storage.

@param {string} key The key for the value to be stored.
@param {*} value The value to be stored.  Anything that can be serialized
    with JSON is acceptable.
@override