function requestViaIframe(url, additionalAttributes) {
  const iframe = createElement(
      "iframe",
      Object.assign({"src": url}, additionalAttributes),
      document.body,
      false);
  return bindEvents2(window, "message", iframe, "error", window, "error")
      .then(event => {
          if (event.source !== iframe.contentWindow)
            return Promise.reject(new Error('Unexpected event.source'));
          return event.data;
        });
}
Creates a new iframe, binds load and error events, sets the src attribute and
    appends it to {@code document.body} .
@param {string} url The src for the iframe.
@return {Promise} The promise for success/error events.