UNPKG

slimerjs-firefox

Version:

This repo includes slimerjs as well as downloads a local copy of Firefox.

17 lines (16 loc) 8.85 kB
function(){return function(){var g=this; function h(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"== b&&"undefined"==typeof a.call)return"object";return b}function aa(a){var b=h(a);return"array"==b||"object"==b&&"number"==typeof a.length}function ba(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}var ca=Date.now||function(){return+new Date};var m=window;function n(a,b){this.code=a;this.state=p[a]||da;this.message=b||"";var c=this.state.replace(/((?:^|\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\s\xa0]+/g,"")}),d=c.length-5;if(0>d||c.indexOf("Error",d)!=d)c+="Error";this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||""}(function(){var a=Error;function b(){}b.prototype=a.prototype;n.d=a.prototype;n.prototype=new b})(); var da="unknown error",p={15:"element not selectable",11:"element not visible",31:"ime engine activation failed",30:"ime not available",24:"invalid cookie domain",29:"invalid element coordinates",12:"invalid element state",32:"invalid selector",51:"invalid selector",52:"invalid selector",17:"javascript error",405:"unsupported operation",34:"move target out of bounds",27:"no such alert",7:"no such element",8:"no such frame",23:"no such window",28:"script timeout",33:"session not created",10:"stale element reference", 0:"success",21:"timeout",25:"unable to set cookie",26:"unexpected alert open"};p[13]=da;p[9]="unknown command";n.prototype.toString=function(){return this.name+": "+this.message};function q(a,b){for(var c=0,d=String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),e=String(b).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),f=Math.max(d.length,e.length),D=0;0==c&&D<f;D++){var za=d[D]||"",Aa=e[D]||"",Ba=RegExp("(\\d*)(\\D*)","g"),Ca=RegExp("(\\d*)(\\D*)","g");do{var k=Ba.exec(za)||["","",""],l=Ca.exec(Aa)||["","",""];if(0==k[0].length&&0==l[0].length)break;c=((0==k[1].length?0:parseInt(k[1],10))<(0==l[1].length?0:parseInt(l[1],10))?-1:(0==k[1].length?0:parseInt(k[1],10))> (0==l[1].length?0:parseInt(l[1],10))?1:0)||((0==k[2].length)<(0==l[2].length)?-1:(0==k[2].length)>(0==l[2].length)?1:0)||(k[2]<l[2]?-1:k[2]>l[2]?1:0)}while(0==c)}return c};var r,s,t,u;function v(){return g.navigator?g.navigator.userAgent:null}u=t=s=r=!1;var w;if(w=v()){var ea=g.navigator;r=0==w.indexOf("Opera");s=!r&&-1!=w.indexOf("MSIE");t=!r&&-1!=w.indexOf("WebKit");u=!r&&!t&&"Gecko"==ea.product}var x=r,y=s,z=u,fa=t,ga=g.navigator,ha=-1!=(ga&&ga.platform||"").indexOf("Win");function ia(){var a=g.document;return a?a.documentMode:void 0}var A; a:{var B="",C;if(x&&g.opera)var E=g.opera.version,B="function"==typeof E?E():E;else if(z?C=/rv\:([^\);]+)(\)|;)/:y?C=/MSIE\s+([^\);]+)(\)|;)/:fa&&(C=/WebKit\/(\S+)/),C)var ja=C.exec(v()),B=ja?ja[1]:"";if(y){var ka=ia();if(ka>parseFloat(B)){A=String(ka);break a}}A=B}var la={};function F(a){return la[a]||(la[a]=0<=q(A,a))}var ma=g.document,na=ma&&y?ia()||("CSS1Compat"==ma.compatMode?parseInt(A,10):5):void 0;var G,H,I,J,K,L,M;M=L=K=J=I=H=G=!1;var N=v();N&&(-1!=N.indexOf("Firefox")?G=!0:-1!=N.indexOf("Camino")?H=!0:-1!=N.indexOf("iPhone")||-1!=N.indexOf("iPod")?I=!0:-1!=N.indexOf("iPad")?J=!0:-1!=N.indexOf("Android")?K=!0:-1!=N.indexOf("Chrome")?L=!0:-1!=N.indexOf("Safari")&&(M=!0));var oa=G,pa=H,qa=I,ra=J,O=K,sa=L,P=M;function Q(a){return(a=a.exec(v()))?a[1]:""}var ta=function(){if(oa)return Q(/Firefox\/([0-9.]+)/);if(y||x)return A;if(sa)return Q(/Chrome\/([0-9.]+)/);if(P)return Q(/Version\/([0-9.]+)/);if(qa||ra){var a=/Version\/(\S+).*Mobile\/(\S+)/.exec(v());if(a)return a[1]+"."+a[2]}else{if(O)return(a=Q(/Android\s+([0-9.]+)/))?a:Q(/Version\/([0-9.]+)/);if(pa)return Q(/Camino\/([0-9.]+)/)}return""}();var ua,va;function R(a){return wa?ua(a):y?0<=q(na,a):F(a)}function S(a){return wa?va(a):O?0<=q(xa,a):0<=q(ta,a)} var wa=function(){if(!z)return!1;var a=g.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(b){return!1}var c=a.classes,a=a.interfaces,d=c["@mozilla.org/xpcom/version-comparator;1"].getService(a.nsIVersionComparator),c=c["@mozilla.org/xre/app-info;1"].getService(a.nsIXULAppInfo),e=c.platformVersion,f=c.version;ua=function(a){return 0<=d.c(e,""+a)};va=function(a){return 0<=d.c(f,""+a)};return!0}(),T;if(O){var ya=/Android\s+([0-9\.]+)/.exec(v());T=ya?ya[1]:"0"}else T="0";var xa=T;O&&S(2.3); O&&S(4);P&&S(6);function Da(){this.a=void 0} function U(a,b,c){switch(typeof b){case "string":Ea(b,c);break;case "number":c.push(isFinite(b)&&!isNaN(b)?b:"null");break;case "boolean":c.push(b);break;case "undefined":c.push("null");break;case "object":if(null==b){c.push("null");break}if("array"==h(b)){var d=b.length;c.push("[");for(var e="",f=0;f<d;f++)c.push(e),e=b[f],U(a,a.a?a.a.call(b,String(f),e):e,c),e=",";c.push("]");break}c.push("{");d="";for(f in b)Object.prototype.hasOwnProperty.call(b,f)&&(e=b[f],"function"!=typeof e&&(c.push(d),Ea(f, c),c.push(":"),U(a,a.a?a.a.call(b,f,e):e,c),d=","));c.push("}");break;case "function":break;default:throw Error("Unknown type: "+typeof b);}}var V={'"':'\\"',"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},Fa=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g; function Ea(a,b){b.push('"',a.replace(Fa,function(a){if(a in V)return V[a];var b=a.charCodeAt(0),e="\\u";16>b?e+="000":256>b?e+="00":4096>b&&(e+="0");return V[a]=e+b.toString(16)}),'"')};fa||x||z&&R(3.5)||y&&R(8);function W(a,b){for(var c=a.length,d=Array(c),e="string"==typeof a?a.split(""):a,f=0;f<c;f++)f in e&&(d[f]=b.call(void 0,e[f],f,a));return d};if(z||y){var Ga;if(Ga=y)Ga=y&&9<=na;Ga||z&&F("1.9.1")}y&&F("9");function Ha(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function Ia(a,b){var c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);return c}function Ja(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};function X(a){switch(h(a)){case "string":case "number":case "boolean":return a;case "function":return a.toString();case "array":return W(a,X);case "object":if("nodeType"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Ka(a);return b}if("document"in a)return b={},b.WINDOW=Ka(a),b;if(aa(a))return W(a,X);a=Ha(a,function(a,b){return"number"==typeof b||"string"==typeof b});return Ia(a,X);default:return null}} function La(a,b){return"array"==h(a)?W(a,function(a){return La(a,b)}):ba(a)?"function"==typeof a?a:"ELEMENT"in a?Ma(a.ELEMENT,b):"WINDOW"in a?Ma(a.WINDOW,b):Ia(a,function(a){return La(a,b)}):a}function Na(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.b=ca());b.b||(b.b=ca());return b}function Ka(a){var b=Na(a.ownerDocument),c=Ja(b,function(b){return b==a});c||(c=":wdc:"+b.b++,b[c]=a);return c} function Ma(a,b){a=decodeURIComponent(a);var c=b||document,d=Na(c);if(!(a in d))throw new n(10,"Element does not exist in cache");var e=d[a];if("setInterval"in e){if(e.closed)throw delete d[a],new n(23,"Window has been closed.");return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delete d[a];throw new n(10,"Element is no longer attached to the DOM");};var Oa=y&&R(8)&&!R(9),Pa=P&&S(4)&&!S(5),Qa=O&&S(2.2)&&!S(2.3),Ra=ha&&P&&S(4)&&!S(6); function Sa(){var a=m||m;switch("appcache"){case "appcache":return Oa?!1:null!=a.applicationCache;case "browser_connection":return null!=a.navigator&&null!=a.navigator.onLine;case "database":return Pa||Qa?!1:null!=a.openDatabase;case "location":return Ra?!1:null!=a.navigator&&null!=a.navigator.geolocation;case "local_storage":return Oa?!1:null!=a.localStorage;case "session_storage":return Oa?!1:null!=a.sessionStorage&&null!=a.sessionStorage.clear;default:throw new n(13,"Unsupported API identifier provided as parameter"); }};function Ta(){var a;if(Sa())a=m.applicationCache.status;else throw new n(13,"Undefined application cache");return a};function Ua(){var a=Ta,b=[],c;try{var a="string"==typeof a?new m.Function(a):m==window?a:new m.Function("return ("+a+").apply(null,arguments);"),d=La(b,m.document),e=a.apply(null,d);c={status:0,value:X(e)}}catch(f){c={status:"code"in f?f.code:13,value:{message:f.message}}}a=[];U(new Da,c,a);return a.join("")}var Y=["_"],Z=g;Y[0]in Z||!Z.execScript||Z.execScript("var "+Y[0]);for(var $;Y.length&&($=Y.shift());)Y.length||void 0===Ua?Z=Z[$]?Z[$]:Z[$]={}:Z[$]=Ua;; return this._.apply(null,arguments);}.apply({navigator:typeof window!=undefined?window.navigator:null,document:typeof window!=undefined?window.document:null}, arguments);}