code: function setCrossOrigin (mediaEl) {
    var newMediaEl;
    var src;
  
    // Already has crossorigin set.
    if (mediaEl.hasAttribute('crossorigin')) { return mediaEl; }
  
    src = mediaEl.getAttribute('src');
  
    if (src !== null) {
      // Does not have protocol.
      if (src.indexOf('://') === -1) { return mediaEl; }
  
      // Determine if cross origin is actually needed.
      if (extractDomain(src) === window.location.host) { return mediaEl; }
    }
  
    warn('Cross-origin element (e.g., <img>) was requested without `crossorigin` set. ' +
         'A-Frame will re-request the asset with `crossorigin` attribute set. ' +
         'Please set `crossorigin` on the element (e.g., <img crossorigin="anonymous">)', src);
    mediaEl.crossOrigin = 'anonymous';
    newMediaEl = mediaEl.cloneNode(true);
    return newMediaEl;
  }
docs: Automatically set `crossorigin` if not defined on the media element.
  If it is not defined, we must create and re-append a new media element <img> and
  have the browser re-request it with `crossorigin` set.
  
  @param {Element} Media element (e.g., <img>, <audio>, <video>).
  @returns {Element} Media element to be used to listen to for loaded events.