From 65e4f960908eff83f647afacb0c6adba82314b28 Mon Sep 17 00:00:00 2001 From: Victor Homyakov Date: Mon, 30 Nov 2015 16:58:25 +0300 Subject: [PATCH 1/3] Add PhantomJS support --- session.js | 3 ++- session.min.js | 2 +- test/spec/browser-spec.js | 48 ++++++++++++++++++++++++++++++--------- 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/session.js b/session.js index 49e63f9..ccb9b40 100644 --- a/session.js +++ b/session.js @@ -155,6 +155,7 @@ var session_fetch = (function(win, doc, nav){ { string: nav.userAgent, subString: "Edge", identity: "Edge"}, { string: nav.userAgent, subString: "Chrome", identity: "Chrome" }, { string: nav.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb" }, + { string: nav.userAgent, subString: "PhantomJS", identity: "PhantomJS" }, { string: nav.vendor, subString: "Apple", identity: "Safari", versionSearch: "Version" }, { prop: win.opera, identity: "Opera", versionSearch: "Version" }, { string: nav.vendor, subString: "iCab",identity: "iCab" }, @@ -346,7 +347,7 @@ var session_fetch = (function(win, doc, nav){ ipinfodb_location: function(api_key){ return function (callback){ var location_cookie = util.get_obj(options.location_cookie); - if (!location_cookie && location_cookie.source === 'ipinfodb'){ + if (!location_cookie && location_cookie.source === 'ipinfodb'){ win.ipinfocb = function(data){ if (data.statusCode === "OK"){ data.source = "ipinfodb"; diff --git a/session.min.js b/session.min.js index 85b992c..1d793e5 100644 --- a/session.min.js +++ b/session.min.js @@ -1 +1 @@ -var session_fetch=function(win,doc,nav){"use strict";var API_VERSION=.4;var options={use_html5_location:false,ipinfodb_key:false,gapi_location:true,location_cookie:"location",location_cookie_timeout:5,session_timeout:32,session_cookie:"first_session",get_object:null,set_object:null};var SessionRunner=function(){win.session=win.session||{};win.session.contains=function(other_str){if(typeof other_str==="string"){return this.indexOf(other_str)!==-1}for(var i=0;i1){for(i=0;i1){for(i=0;i Date: Sat, 27 Aug 2016 14:37:35 +0300 Subject: [PATCH 2/3] Fix warnings --- session.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/session.js b/session.js index ccb9b40..0630605 100644 --- a/session.js +++ b/session.js @@ -1,3 +1,4 @@ +/*jshint quotmark:false,curly:false,maxlen:340,maxdepth:4*/ /** * session.js 0.4.1 * (c) 2012 Iain, CodeJoust @@ -79,7 +80,7 @@ var session_fetch = (function(win, doc, nav){ var start = win.session.start; } // Set up checking, if all modules are ready - var asynchs = 0, module, result, + var asynchs = 0, module, check_asynch = function(deinc){ if (deinc){ asynchs--; } if (asynchs === 0){ @@ -238,13 +239,13 @@ var session_fetch = (function(win, doc, nav){ var found = true; for (var i = 0; i < versions.length; i++){ try { - var obj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash" + versions[i]) - , found = !0; + new ActiveXObject("ShockwaveFlash.ShockwaveFlash" + versions[i]); + found = !0; } catch (e){ /* nil */ } if (found) return true; } return false; - } + }; return { flash: check_plugin("flash") || check_activex_flash(['.7','.6','']), silverlight: check_plugin("silverlight"), @@ -270,7 +271,7 @@ var session_fetch = (function(win, doc, nav){ { name: "Ask", host: "ask.com", query: "q" }, { name: "Baidu", host: "baidu.com", query: "wd" } ], length = search_engines.length, - engine, match, i = 0, + engine, i = 0, fallbacks = 'q query term p wd query text'.split(' '); for (i = 0; i < length; i++){ engine = search_engines[i]; @@ -336,13 +337,13 @@ var session_fetch = (function(win, doc, nav){ }}; }, architecture: function(){ - var arch = n.userAgent.match(/x86_64|Win64|WOW64|x86-64|x64\;|AMD64|amd64/) || - (n.cpuClass === 'x64') ? 'x64' : 'x86'; + var arch = nav.userAgent.match(/x86_64|Win64|WOW64|x86-64|x64\;|AMD64|amd64/) || + (nav.cpuClass === 'x64') ? 'x64' : 'x86'; return { arch: arch, is_x64: arch == 'x64', is_x86: arch == 'x68' - } + }; }, ipinfodb_location: function(api_key){ return function (callback){ @@ -362,7 +363,7 @@ var session_fetch = (function(win, doc, nav){ }}; util.embed_script("http://api.ipinfodb.com/v3/ip-city/?key=" + api_key + "&format=json&callback=ipinfocb"); } else { callback(location_cookie); } - }} + };} }; // Utilities @@ -386,7 +387,7 @@ var session_fetch = (function(win, doc, nav){ protocol: a.protocol, port: a.port === '' ? 80 : a.port, search: a.search, - query: query } + query: query }; }, set_cookie: function(cname, value, expires, options){ // from jquery.cookie.js if (!cname){ return null; } From ccdf623dc3e821a2e2fbe7efecd341d7ae11490e Mon Sep 17 00:00:00 2001 From: Victor Homyakov Date: Sat, 27 Aug 2016 15:29:00 +0300 Subject: [PATCH 3/3] Add Chrome for iOS and Fluid App detection --- session.js | 2 + session.min.js | 2 +- test/spec/browser-spec.js | 90 ++++++++++++++++++++++----------------- 3 files changed, 53 insertions(+), 41 deletions(-) diff --git a/session.js b/session.js index 0630605..4b4d18a 100644 --- a/session.js +++ b/session.js @@ -155,6 +155,7 @@ var session_fetch = (function(win, doc, nav){ browser: [ { string: nav.userAgent, subString: "Edge", identity: "Edge"}, { string: nav.userAgent, subString: "Chrome", identity: "Chrome" }, + { string: nav.userAgent, subString: "CriOS", identity: "Chrome", versionSearch: "CriOS" }, { string: nav.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb" }, { string: nav.userAgent, subString: "PhantomJS", identity: "PhantomJS" }, { string: nav.vendor, subString: "Apple", identity: "Safari", versionSearch: "Version" }, @@ -162,6 +163,7 @@ var session_fetch = (function(win, doc, nav){ { string: nav.vendor, subString: "iCab",identity: "iCab" }, { string: nav.vendor, subString: "KDE", identity: "Konqueror" }, { string: nav.userAgent, subString: "Firefox", identity: "Firefox" }, + { string: nav.userAgent, subString: "Fluid", identity: "Fluid", versionSearch: "FluidApp Version" }, { string: nav.vendor, subString: "Camino", identity: "Camino" }, { string: nav.userAgent, subString: "Netscape", identity: "Netscape" }, { string: nav.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" }, diff --git a/session.min.js b/session.min.js index 1d793e5..02fd4c5 100644 --- a/session.min.js +++ b/session.min.js @@ -1 +1 @@ -var session_fetch=function(win,doc,nav){"use strict";var API_VERSION=.4;var options={use_html5_location:false,ipinfodb_key:false,gapi_location:true,location_cookie:"location",location_cookie_timeout:5,session_timeout:32,session_cookie:"first_session",get_object:null,set_object:null};var SessionRunner=function(){win.session=win.session||{};win.session.contains=function(other_str){if(typeof other_str==="string"){return this.indexOf(other_str)!==-1}for(var i=0;i1){for(i=0;i1){for(i=0;i