1
0
mirror of https://github.com/lancedikson/bowser synced 2026-03-02 03:40:27 +00:00

refactored detection for firefox/seamonkey/plain gecko to conform to the way other browsers are detected, added version information in case unknown gecko/webkit browser is detected, added detection+tests+docs for sailfish browser

This commit is contained in:
BendingBender
2014-02-28 19:53:50 +01:00
parent 8bcd3bc802
commit 1e7a7279c8
5 changed files with 79 additions and 31 deletions

View File

@@ -62,22 +62,28 @@
result.version = versionIdentifier
}
}
else if (/gecko\//i.test(ua)) {
else if (/sailfish/i.test(ua)) {
result = {
name: 'Gecko'
, gecko: t
name: 'Sailfish'
, sailfish: t
, version: getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i)
}
}
else if (/seamonkey\//i.test(ua)) {
result = {
name: 'SeaMonkey'
, seamonkey: t
, version: getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i)
}
}
else if (/firefox|iceweasel/i.test(ua)) {
result = {
name: 'Firefox'
, firefox: t
, version: getFirstMatch(/(?:firefox|iceweasel)[ \/](\d+(\.\d+)?)/i)
}
if (/seamonkey\//i.test(ua)) {
result.name = 'SeaMonkey'
result.seamonkey = t
result.version = getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i)
} else if (/firefox|iceweasel/i.test(ua)) {
result.name = 'Firefox'
result.firefox = t
if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) {
result.firefoxos = t
}
if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) {
result.firefoxos = t
}
}
else if (/silk/i.test(ua)) {
@@ -138,9 +144,17 @@
}
else result = {}
// set webkit flag for webkit-based browsers
// set webkit or gecko flag for browsers based on these engines
if (/(apple)?webkit/i.test(ua)) {
result.name = result.name || "Webkit"
result.webkit = t
if (!result.version && versionIdentifier) {
result.version = versionIdentifier
}
} else if (!result.opera && /gecko\//i.test(ua)) {
result.name = result.name || "Gecko"
result.gecko = t
result.version = result.version || getFirstMatch(/gecko\/(\d+(\.\d+)?)/i)
}
// set OS flags for platforms that have multiple browsers