'use strict'; exports.__esModule = true; exports.default = determineCrossOrigin; var _url2 = require('url'); var _url3 = _interopRequireDefault(_url2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var tempAnchor = void 0; /** * Sets the `crossOrigin` property for this resource based on if the url * for this resource is cross-origin. If crossOrigin was manually set, this * function does nothing. * Nipped from the resource loader! * * @ignore * @param {string} url - The url to test. * @param {object} [loc=window.location] - The location object to test against. * @return {string} The crossOrigin value to use (or empty string for none). */ function determineCrossOrigin(url) { var loc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.location; // data: and javascript: urls are considered same-origin if (url.indexOf('data:') === 0) { return ''; } // default is window.location loc = loc || window.location; if (!tempAnchor) { tempAnchor = document.createElement('a'); } // let the browser determine the full href for the url of this resource and then // parse with the node url lib, we can't use the properties of the anchor element // because they don't work in IE9 :( tempAnchor.href = url; url = _url3.default.parse(tempAnchor.href); var samePort = !url.port && loc.port === '' || url.port === loc.port; // if cross origin if (url.hostname !== loc.hostname || !samePort || url.protocol !== loc.protocol) { return 'anonymous'; } return ''; } //# sourceMappingURL=determineCrossOrigin.js.map