browser-update
Advanced tools
Comparing version 3.3.13 to 3.3.16
Changes to the notification / detection script | ||
========== | ||
3.3.16 1.4.20 | ||
- updated browser versions | ||
3.3.15 29.2.20 | ||
- clear cookie in test mode | ||
3.3.14 27.2.20 | ||
- ignore oculus quest browser | ||
- created a detailed test-page for the script https://browser-update.org/test/bar.html | ||
- updated firefox version | ||
- mark discontinued browsers | ||
3.3.13 24.2.20 | ||
@@ -4,0 +16,0 @@ - take care of edge version jump between 18 and 79 when specifying relative to latest version |
{ | ||
"name": "browser-update", | ||
"version": "3.3.13", | ||
"version": "3.3.16", | ||
"description": "Remind users to update their browser in an unobtrusive way.", | ||
@@ -5,0 +5,0 @@ "main": "update.npm.full.js", |
@@ -7,7 +7,7 @@ //(c)2019, MIT Style License <browser-update.org/LICENSE.txt> | ||
var s=this; | ||
this.version="3.3.13"; | ||
this.vsakt = {c:"80.0.3987.116",f:72,s:"13.0.4",e:80,i:12,ios:"13.3",samsung:10.2,o:65,e_a:44,o_a:55.2,y:"19.12.3",v:2.10,uc:"12.13"}; | ||
this.version="3.3.16"; | ||
this.vsakt = {c:"80.0.3987.116",f:74,s:"13.1",e:80,i:12,ios:"13.3",samsung:11.1,o:67,e_a:45,o_a:55.2,y:"20.3.1",v:2.11,uc:"13.0.2"}; | ||
//severely insecure below(!) this version, insecure means remote code execution that is actively being exploited | ||
this.vsinsecure_below = {c:74,f:72,s:"11.1.1",e:16,i:11,ios:"12.4.3",samsung:"8.0",o:55,o_a:50,y:"19.6",v:"2.5",uc:"12.10"}; | ||
this.vsdefault = {c:-3,f:-3,s:-1,e:-3,i:11,ios:10,samsung:7.9,o:-3,o_a:-3,y:19.5,v:2.3,uc:12.8,a:535}; | ||
this.vsinsecure_below = {c:76,f:72,s:"11.1.1",e:16,i:11,ios:"12.4.3",samsung:9.0,o:62,o_a:52,y:"20.0",v:"2.6",uc:"12.10"}; | ||
this.vsdefault = {c:-3,f:-3,s:-1,e:-3,i:11,ios:10,samsung:9.1,o:-3,o_a:-3,y:20.0,v:2.6,uc:12.11,a:535}; | ||
this.names={c:"Chrome",f:'Firefox',s:'Safari',e:"Edge",i:'Internet Explorer',ios:"iOS",samsung:"Samsung Internet",o:'Opera',o_a:'Opera', e_a:"Edge", y:"Yandex Browser",v:"Vivaldi",uc:"UC Browser",a:"Android Browser",x:"Other",silk:"Silk"}; | ||
@@ -19,8 +19,8 @@ | ||
r.other=ignore("bot","Pagespeed|pingdom|Preview|ktxn|dynatrace|Ruxit|PhantomJS|Headless|Lighthouse|bot|spider|archiver|transcoder|crawl|checker|monitoring|prerender|screenshot|python-|php|uptime|validator|fetcher|facebook|slurp|google|yahoo|node|mail.ru|github|cloudflare|addthis|thumb|proxy|feed|fetch|favicon|link|http|scrape|seo|page|search console|AOLBuild|Teoma|Expeditor")|| | ||
// ignore("discontinued browser","camino|flot|fennec|galeon|coolnovo") || | ||
ignore("TV","SMART-TV|SmartTV") || | ||
ignore("niche browser","Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|QupZilla|Otter|Midori|qutebrowser") || | ||
ignore("niche browser","OculusBrowser|Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|QupZilla|Otter|Midori|qutebrowser") || | ||
ignore("mobile without upgrade path or landing page","OPR/44.12.2246|cros|kindle|tizen|silk|blackberry|bb10|RIM|PlayBook|meego|nokia|ucweb|ZuneWP7|537.85.10"); | ||
// ignore("android(chrome) web view","; wv"); | ||
r.mobile=(/iphone|ipod|ipad|android|mobile|phone|ios|iemobile/i.test(ua)); | ||
r.discontinued=(/netscape|greenbrowser|camino|flot|fennec|galeon|coolnovo/i.test(ua)); | ||
@@ -153,4 +153,2 @@ var pats=[ | ||
} | ||
if ((r.n==="c"||r.n==="f"||r.n==="o"||r.n==="e") && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0) | ||
r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother | ||
if (r.n==="ios" && r.v>10.3) | ||
@@ -164,2 +162,5 @@ r.is_supported=true; | ||
} | ||
if (r.n in ["c","f","o","e"] && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0) | ||
r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother | ||
var releases_per_year={'f':7,'c':8,'o':8,'i':1,'e':1,'s':1}//,'v':1} | ||
@@ -272,3 +273,5 @@ if (releases_per_year[r.n]) { | ||
if (required.e<79 && required.e>70) | ||
if (required.i<79 && required.i>65) | ||
required.i=required.i-60 | ||
if (required.e<79 && required.e>65) | ||
required.e=required.e-60 | ||
@@ -330,5 +333,9 @@ op.required=required; | ||
op.setCookie=function(hours) { | ||
op.setCookie=function(hours) { //sets a cookie that the user has already seen the notification, closed it or permanently wants to hide it. No information on the user is stored. | ||
document.cookie = 'browserupdateorg=pause; expires='+(new Date(new Date().getTime()+3600000*hours)).toGMTString()+'; path=/; SameSite=None; Secure'; | ||
}; | ||
if (op.already_shown && (op.ignorecookie || op.test)) | ||
op.setCookie(-10)// remove old cookies if in test mode | ||
if (op.reminder>0) | ||
@@ -335,0 +342,0 @@ op.setCookie(op.reminder); |
@@ -7,7 +7,7 @@ //(c)2019, MIT Style License <browser-update.org/LICENSE.txt> | ||
var s=this; | ||
this.version="3.3.13"; | ||
this.vsakt = {c:"80.0.3987.116",f:72,s:"13.0.4",e:80,i:12,ios:"13.3",samsung:10.2,o:65,e_a:44,o_a:55.2,y:"19.12.3",v:2.10,uc:"12.13"}; | ||
this.version="3.3.16"; | ||
this.vsakt = {c:"80.0.3987.116",f:74,s:"13.1",e:80,i:12,ios:"13.3",samsung:11.1,o:67,e_a:45,o_a:55.2,y:"20.3.1",v:2.11,uc:"13.0.2"}; | ||
//severely insecure below(!) this version, insecure means remote code execution that is actively being exploited | ||
this.vsinsecure_below = {c:74,f:72,s:"11.1.1",e:16,i:11,ios:"12.4.3",samsung:"8.0",o:55,o_a:50,y:"19.6",v:"2.5",uc:"12.10"}; | ||
this.vsdefault = {c:-3,f:-3,s:-1,e:-3,i:11,ios:10,samsung:7.9,o:-3,o_a:-3,y:19.5,v:2.3,uc:12.8,a:535}; | ||
this.vsinsecure_below = {c:76,f:72,s:"11.1.1",e:16,i:11,ios:"12.4.3",samsung:9.0,o:62,o_a:52,y:"20.0",v:"2.6",uc:"12.10"}; | ||
this.vsdefault = {c:-3,f:-3,s:-1,e:-3,i:11,ios:10,samsung:9.1,o:-3,o_a:-3,y:20.0,v:2.6,uc:12.11,a:535}; | ||
this.names={c:"Chrome",f:'Firefox',s:'Safari',e:"Edge",i:'Internet Explorer',ios:"iOS",samsung:"Samsung Internet",o:'Opera',o_a:'Opera', e_a:"Edge", y:"Yandex Browser",v:"Vivaldi",uc:"UC Browser",a:"Android Browser",x:"Other",silk:"Silk"}; | ||
@@ -19,8 +19,8 @@ | ||
r.other=ignore("bot","Pagespeed|pingdom|Preview|ktxn|dynatrace|Ruxit|PhantomJS|Headless|Lighthouse|bot|spider|archiver|transcoder|crawl|checker|monitoring|prerender|screenshot|python-|php|uptime|validator|fetcher|facebook|slurp|google|yahoo|node|mail.ru|github|cloudflare|addthis|thumb|proxy|feed|fetch|favicon|link|http|scrape|seo|page|search console|AOLBuild|Teoma|Expeditor")|| | ||
// ignore("discontinued browser","camino|flot|fennec|galeon|coolnovo") || | ||
ignore("TV","SMART-TV|SmartTV") || | ||
ignore("niche browser","Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|QupZilla|Otter|Midori|qutebrowser") || | ||
ignore("niche browser","OculusBrowser|Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|QupZilla|Otter|Midori|qutebrowser") || | ||
ignore("mobile without upgrade path or landing page","OPR/44.12.2246|cros|kindle|tizen|silk|blackberry|bb10|RIM|PlayBook|meego|nokia|ucweb|ZuneWP7|537.85.10"); | ||
// ignore("android(chrome) web view","; wv"); | ||
r.mobile=(/iphone|ipod|ipad|android|mobile|phone|ios|iemobile/i.test(ua)); | ||
r.discontinued=(/netscape|greenbrowser|camino|flot|fennec|galeon|coolnovo/i.test(ua)); | ||
@@ -153,4 +153,2 @@ var pats=[ | ||
} | ||
if ((r.n==="c"||r.n==="f"||r.n==="o"||r.n==="e") && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0) | ||
r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother | ||
if (r.n==="ios" && r.v>10.3) | ||
@@ -164,2 +162,5 @@ r.is_supported=true; | ||
} | ||
if (r.n in ["c","f","o","e"] && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0) | ||
r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother | ||
var releases_per_year={'f':7,'c':8,'o':8,'i':1,'e':1,'s':1}//,'v':1} | ||
@@ -272,3 +273,5 @@ if (releases_per_year[r.n]) { | ||
if (required.e<79 && required.e>70) | ||
if (required.i<79 && required.i>65) | ||
required.i=required.i-60 | ||
if (required.e<79 && required.e>65) | ||
required.e=required.e-60 | ||
@@ -330,5 +333,9 @@ op.required=required; | ||
op.setCookie=function(hours) { | ||
op.setCookie=function(hours) { //sets a cookie that the user has already seen the notification, closed it or permanently wants to hide it. No information on the user is stored. | ||
document.cookie = 'browserupdateorg=pause; expires='+(new Date(new Date().getTime()+3600000*hours)).toGMTString()+'; path=/; SameSite=None; Secure'; | ||
}; | ||
if (op.already_shown && (op.ignorecookie || op.test)) | ||
op.setCookie(-10)// remove old cookies if in test mode | ||
if (op.reminder>0) | ||
@@ -335,0 +342,0 @@ op.setCookie(op.reminder); |
65474
872