cross-domain-utils
Version:
Javascript module template.
2 lines • 11.5 kB
JavaScript
!function(n,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("crossDomainUtils",[],r):"object"==typeof exports?exports.crossDomainUtils=r():n.crossDomainUtils=r()}("undefined"!=typeof self?self:this,(function(){return function(n){var r={};function t(e){if(r[e])return r[e].exports;var o=r[e]={i:e,l:!1,exports:{}};return n[e].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=n,t.c=r,t.d=function(n,r,e){t.o(n,r)||Object.defineProperty(n,r,{enumerable:!0,get:e})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,r){if(1&r&&(n=t(n)),8&r)return n;if(4&r&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(t.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&r&&"string"!=typeof n)for(var o in n)t.d(e,o,function(r){return n[r]}.bind(null,o));return e},t.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(r,"a",r),r},t.o=function(n,r){return{}.hasOwnProperty.call(n,r)},t.p="",t(t.s=0)}([function(n,r,t){"use strict";function e(n){return"[object RegExp]"==={}.toString.call(n)}t.r(r),t.d(r,"getActualProtocol",(function(){return f})),t.d(r,"getProtocol",(function(){return a})),t.d(r,"isFileProtocol",(function(){return d})),t.d(r,"isAboutProtocol",(function(){return s})),t.d(r,"isMockProtocol",(function(){return l})),t.d(r,"getParent",(function(){return w})),t.d(r,"getOpener",(function(){return m})),t.d(r,"canReadFromWindow",(function(){return v})),t.d(r,"getActualDomain",(function(){return p})),t.d(r,"getDomain",(function(){return h})),t.d(r,"isBlankDomain",(function(){return y})),t.d(r,"isActuallySameDomain",(function(){return g})),t.d(r,"isSameDomain",(function(){return O})),t.d(r,"assertSameDomain",(function(){return A})),t.d(r,"getParents",(function(){return b})),t.d(r,"isAncestorParent",(function(){return D})),t.d(r,"getFrames",(function(){return P})),t.d(r,"getAllChildFrames",(function(){return E})),t.d(r,"getTop",(function(){return W})),t.d(r,"getNextOpener",(function(){return F})),t.d(r,"getUltimateTop",(function(){return x})),t.d(r,"getAllFramesInWindow",(function(){return _})),t.d(r,"getAllWindows",(function(){return S})),t.d(r,"isTop",(function(){return T})),t.d(r,"isFrameWindowClosed",(function(){return k})),t.d(r,"isWindowClosed",(function(){return M})),t.d(r,"linkFrameWindow",(function(){return B})),t.d(r,"getUserAgent",(function(){return N})),t.d(r,"getFrameByName",(function(){return U})),t.d(r,"findChildFrameByName",(function(){return I})),t.d(r,"findFrameByName",(function(){return L})),t.d(r,"isParent",(function(){return R})),t.d(r,"isOpener",(function(){return K})),t.d(r,"getAncestor",(function(){return J})),t.d(r,"getAncestors",(function(){return Y})),t.d(r,"isAncestor",(function(){return q})),t.d(r,"isPopup",(function(){return z})),t.d(r,"isIframe",(function(){return G})),t.d(r,"isFullpage",(function(){return H})),t.d(r,"getDistanceFromTop",(function(){return V})),t.d(r,"getNthParent",(function(){return X})),t.d(r,"getNthParentFromTop",(function(){return Z})),t.d(r,"isSameTopWindow",(function(){return $})),t.d(r,"matchDomain",(function(){return nn})),t.d(r,"stringifyDomainPattern",(function(){return rn})),t.d(r,"getDomainFromUrl",(function(){return tn})),t.d(r,"onCloseWindow",(function(){return en})),t.d(r,"isWindow",(function(){return on})),t.d(r,"isBrowser",(function(){return un})),t.d(r,"isCurrentDomain",(function(){return cn})),t.d(r,"isMockDomain",(function(){return fn})),t.d(r,"normalizeMockUrl",(function(){return an})),t.d(r,"getFrameForWindow",(function(){return dn})),t.d(r,"closeWindow",(function(){return sn})),t.d(r,"TYPES",(function(){return ln})),t.d(r,"PROTOCOL",(function(){return o})),t.d(r,"WILDCARD",(function(){return i})),t.d(r,"WINDOW_TYPE",(function(){return u}));var o={MOCK:"mock:",FILE:"file:",ABOUT:"about:"},i="*",u={IFRAME:"iframe",POPUP:"popup"},c="Call was rejected by callee.\r\n";function f(n){return void 0===n&&(n=window),n.location.protocol}function a(n){if(void 0===n&&(n=window),n.mockDomain){var r=n.mockDomain.split("//")[0];if(r)return r}return f(n)}function d(n){return void 0===n&&(n=window),a(n)===o.FILE}function s(n){return void 0===n&&(n=window),a(n)===o.ABOUT}function l(n){return void 0===n&&(n=window),a(n)===o.MOCK}function w(n){if(void 0===n&&(n=window),n)try{if(n.parent&&n.parent!==n)return n.parent}catch(n){}}function m(n){if(void 0===n&&(n=window),n&&!w(n))try{return n.opener}catch(n){}}function v(n){try{return!0}catch(n){}return!1}function p(n){void 0===n&&(n=window);var r=n.location;if(!r)throw new Error("Can not read window location");var t=f(n);if(!t)throw new Error("Can not read window protocol");if(t===o.FILE)return o.FILE+"//";if(t===o.ABOUT){var e=w(n);return e&&v()?p(e):o.ABOUT+"//"}var i=r.host;if(!i)throw new Error("Can not read window host");return t+"//"+i}function h(n){void 0===n&&(n=window);var r=p(n);return r&&n.mockDomain&&0===n.mockDomain.indexOf(o.MOCK)?n.mockDomain:r}function y(n){try{if(!n.location.href)return!0;if("about:blank"===n.location.href)return!0}catch(n){}return!1}function g(n){try{if(n===window)return!0}catch(n){}try{var r=Object.getOwnPropertyDescriptor(n,"location");if(r&&!1===r.enumerable)return!1}catch(n){}try{if(s(n)&&v())return!0}catch(n){}try{if(l(n)&&v())return!0}catch(n){}try{if(p(n)===p(window))return!0}catch(n){}return!1}function O(n){if(!g(n))return!1;try{if(n===window)return!0;if(s(n)&&v())return!0;if(h(window)===h(n))return!0}catch(n){}return!1}function A(n){if(!O(n))throw new Error("Expected window to be same domain");return n}function b(n){var r=[];try{for(;n.parent!==n;)r.push(n.parent),n=n.parent}catch(n){}return r}function D(n,r){if(!n||!r)return!1;var t=w(r);return t?t===n:-1!==b(r).indexOf(n)}function P(n){var r,t,e=[];try{r=n.frames}catch(t){r=n}try{t=r.length}catch(n){}if(0===t)return e;if(t){for(var o=0;o<t;o++){var i=void 0;try{i=r[o]}catch(n){continue}e.push(i)}return e}for(var u=0;u<100;u++){var c=void 0;try{c=r[u]}catch(n){return e}if(!c)return e;e.push(c)}return e}function E(n){for(var r=[],t=0,e=P(n);t<e.length;t++){var o=e[t];r.push(o);for(var i=0,u=E(o);i<u.length;i++)r.push(u[i])}return r}function W(n){void 0===n&&(n=window);try{if(n.top)return n.top}catch(n){}if(w(n)===n)return n;try{if(D(window,n)&&window.top)return window.top}catch(n){}try{if(D(n,window)&&window.top)return window.top}catch(n){}for(var r=0,t=E(n);r<t.length;r++){var e=t[r];try{if(e.top)return e.top}catch(n){}if(w(e)===e)return e}}function F(n){return void 0===n&&(n=window),m(W(n)||n)}function x(n){void 0===n&&(n=window);var r=F(n);return r?x(r):top}function _(n){var r=W(n);if(!r)throw new Error("Can not determine top window");var t=[].concat(E(r),[r]);return-1===t.indexOf(n)&&(t=[].concat(t,[n],E(n))),t}function S(n){void 0===n&&(n=window);var r=_(n),t=F(n);return t?[].concat(S(t),r):r}function T(n){return n===W(n)}function k(n){if(!n.contentWindow)return!0;if(!n.parentNode)return!0;var r=n.ownerDocument;if(r&&r.documentElement&&!r.documentElement.contains(n)){for(var t=n;t.parentNode&&t.parentNode!==t;)t=t.parentNode;if(!t.host||!r.documentElement.contains(t.host))return!0}return!1}var C=[],j=[];function M(n,r){void 0===r&&(r=!0);try{if(n===window)return!1}catch(n){return!0}try{if(!n)return!0}catch(n){return!0}try{if(n.closed)return!0}catch(n){return!n||n.message!==c}if(r&&O(n))try{if(n.mockclosed)return!0}catch(n){}try{if(!n.parent||!n.top)return!0}catch(n){}var t=function(n,r){for(var t=0;t<n.length;t++)try{if(n[t]===r)return t}catch(n){}return-1}(C,n);if(-1!==t){var e=j[t];if(e&&k(e))return!0}return!1}function B(n){if(function(){for(var n=0;n<C.length;n++){var r=!1;try{r=C[n].closed}catch(n){}r&&(j.splice(n,1),C.splice(n,1))}}(),n&&n.contentWindow)try{C.push(n.contentWindow),j.push(n)}catch(n){}}function N(n){return(n=n||window).navigator.mockUserAgent||n.navigator.userAgent}function U(n,r){for(var t=P(n),e=0;e<t.length;e++){var o=t[e];try{if(O(o)&&o.name===r&&-1!==t.indexOf(o))return o}catch(n){}}try{if(-1!==t.indexOf(n.frames[r]))return n.frames[r]}catch(n){}try{if(-1!==t.indexOf(n[r]))return n[r]}catch(n){}}function I(n,r){var t=U(n,r);if(t)return t;for(var e=0,o=P(n);e<o.length;e++){var i=I(o[e],r);if(i)return i}}function L(n,r){return U(n,r)||I(W(n)||n,r)}function R(n,r){var t=w(r);if(t)return t===n;for(var e=0,o=P(n);e<o.length;e++)if(o[e]===r)return!0;return!1}function K(n,r){return n===m(r)}function J(n){return void 0===n&&(n=window),m(n=n||window)||w(n)||void 0}function Y(n){for(var r=[],t=n;t;)(t=J(t))&&r.push(t);return r}function q(n,r){var t=J(r);if(t)return t===n;if(r===n)return!1;if(W(r)===r)return!1;for(var e=0,o=P(n);e<o.length;e++)if(o[e]===r)return!0;return!1}function z(n){return void 0===n&&(n=window),Boolean(m(n))}function G(n){return void 0===n&&(n=window),Boolean(w(n))}function H(n){return void 0===n&&(n=window),Boolean(!G(n)&&!z(n))}function Q(n,r){for(var t=0;t<n.length;t++)for(var e=n[t],o=0;o<r.length;o++)if(e===r[o])return!0;return!1}function V(n){void 0===n&&(n=window);for(var r=0,t=n;t;)(t=w(t))&&(r+=1);return r}function X(n,r){void 0===r&&(r=1);for(var t=n,e=0;e<r;e++){if(!t)return;t=w(t)}return t}function Z(n,r){return void 0===r&&(r=1),X(n,V(n)-r)}function $(n,r){var t=W(n)||n,e=W(r)||r;try{if(t&&e)return t===e}catch(n){}var o=_(n),i=_(r);if(Q(o,i))return!0;var u=m(t),c=m(e);return u&&Q(_(u),i)||c&&Q(_(c),o),!1}function nn(n,r){if("string"==typeof n){if("string"==typeof r)return n===i||r===n;if(e(r))return!1;if(Array.isArray(r))return!1}return e(n)?e(r)?n.toString()===r.toString():!Array.isArray(r)&&Boolean(r.match(n)):!!Array.isArray(n)&&(Array.isArray(r)?JSON.stringify(n)===JSON.stringify(r):!e(r)&&n.some((function(n){return nn(n,r)})))}function rn(n){return Array.isArray(n)?"("+n.join(" | ")+")":e(n)?"RegExp("+n.toString()+")":n.toString()}function tn(n){return n.match(/^(https?|mock|file):\/\//)?n.split("/").slice(0,3).join("/"):h()}function en(n,r,t,e){var o;return void 0===t&&(t=1e3),void 0===e&&(e=1/0),function i(){if(M(n))return o&&clearTimeout(o),r();e<=0?clearTimeout(o):(e-=t,o=setTimeout(i,t))}(),{cancel:function(){o&&clearTimeout(o)}}}function on(n){try{if(n===window)return!0}catch(n){if(n&&n.message===c)return!0}try{if("[object Window]"==={}.toString.call(n))return!0}catch(n){if(n&&n.message===c)return!0}try{if(window.Window&&n instanceof window.Window)return!0}catch(n){if(n&&n.message===c)return!0}try{if(n&&n.self===n)return!0}catch(n){if(n&&n.message===c)return!0}try{if(n&&n.parent===n)return!0}catch(n){if(n&&n.message===c)return!0}try{if(n&&n.top===n)return!0}catch(n){if(n&&n.message===c)return!0}try{if(n&&"__unlikely_value__"===n.__cross_domain_utils_window_check__)return!1}catch(n){return!0}try{if("postMessage"in n&&"self"in n&&"location"in n)return!0}catch(n){}return!1}function un(){return"undefined"!=typeof window&&void 0!==window.location}function cn(n){return!!un()&&h()===n}function fn(n){return 0===n.indexOf(o.MOCK)}function an(n){if(!fn(tn(n)))return n;throw new Error("Mock urls not supported out of test mode")}function dn(n){if(O(n))return A(n).frameElement;for(var r=0,t=document.querySelectorAll("iframe");r<t.length;r++){var e=t[r];if(e&&e.contentWindow&&e.contentWindow===n)return e}}function sn(n){if(G(n)){var r=dn(n);if(r&&r.parentElement)return void r.parentElement.removeChild(r)}try{n.close()}catch(n){}}var ln=!0}])}));
//# sourceMappingURL=cross-domain-utils.min.js.map