diff --git a/README.md b/README.md index b99ae310..a6a8c893 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,14 @@ A lot of user-agents lie about their identify. That makes US sniffing a guessing If you want faster updates, switch to snapshot releases. -New in Version 1.18 +New in Version 1.19 (unreleased) ------------------- -- #118 Updated Opera support -- #115 Improved Ubuntu detection -- #114 Fixed Microsoft Edge version detection -- #125 Improved Opera version detection -- Safari 9 support +- #138 Improved future Microsoft Edge detection and added Edge 13 +- Added current and future Firefox and Chrome versions +- Improved detection of unsuported new Firefox versions +- Added detection of Firefox mobile for iOS devices +- Improved Phantom.js detection as BOT +- Added support for Android 6 and Android 6 tablets Javadoc ------- @@ -84,6 +85,14 @@ http://www.bitwalker.eu/contact Changelog --------- +1.18 +---- +- #118 Updated Opera support +- #115 Improved Ubuntu detection +- #114 Fixed Microsoft Edge version detection +- #125 Improved Opera version detection +- Safari 9 support + 1.17 ---- - Added Ubuntu and Ubuntu Touch (mobile) detection diff --git a/javadoc/allclasses-frame.html b/javadoc/allclasses-frame.html index 0844c7b7..825ac654 100644 --- a/javadoc/allclasses-frame.html +++ b/javadoc/allclasses-frame.html @@ -2,10 +2,10 @@ - + -All Classes (User-Agent-Utils 1.18 API) - +All Classes (User-Agent-Utils 1.19-SNAPSHOT API) + diff --git a/javadoc/allclasses-noframe.html b/javadoc/allclasses-noframe.html index ecf54702..a7aaad39 100644 --- a/javadoc/allclasses-noframe.html +++ b/javadoc/allclasses-noframe.html @@ -2,10 +2,10 @@ - + -All Classes (User-Agent-Utils 1.18 API) - +All Classes (User-Agent-Utils 1.19-SNAPSHOT API) + diff --git a/javadoc/constant-values.html b/javadoc/constant-values.html index 21852639..12798015 100644 --- a/javadoc/constant-values.html +++ b/javadoc/constant-values.html @@ -2,16 +2,16 @@ - + -Constant Field Values (User-Agent-Utils 1.18 API) - +Constant Field Values (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -110,6 +110,6 @@

Contents

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/deprecated-list.html b/javadoc/deprecated-list.html index 25538719..82920caf 100644 --- a/javadoc/deprecated-list.html +++ b/javadoc/deprecated-list.html @@ -2,16 +2,16 @@ - + -Deprecated List (User-Agent-Utils 1.18 API) - +Deprecated List (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -151,6 +151,6 @@

Contents

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/Application.html b/javadoc/eu/bitwalker/useragentutils/Application.html index 89a823c4..12f0a2bb 100644 --- a/javadoc/eu/bitwalker/useragentutils/Application.html +++ b/javadoc/eu/bitwalker/useragentutils/Application.html @@ -2,16 +2,16 @@ - + -Application (User-Agent-Utils 1.18 API) - +Application (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -524,6 +524,6 @@

valueOf

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/ApplicationType.html b/javadoc/eu/bitwalker/useragentutils/ApplicationType.html index a0b309ca..53d65713 100644 --- a/javadoc/eu/bitwalker/useragentutils/ApplicationType.html +++ b/javadoc/eu/bitwalker/useragentutils/ApplicationType.html @@ -2,16 +2,16 @@ - + -ApplicationType (User-Agent-Utils 1.18 API) - +ApplicationType (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -333,6 +333,6 @@

getName

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/Browser.html b/javadoc/eu/bitwalker/useragentutils/Browser.html index 92580535..884e67a1 100644 --- a/javadoc/eu/bitwalker/useragentutils/Browser.html +++ b/javadoc/eu/bitwalker/useragentutils/Browser.html @@ -2,16 +2,16 @@ - + -Browser (User-Agent-Utils 1.18 API) - +Browser (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -282,30 +282,42 @@

Enum Constant Summary

CHROME46  -CHROME8  +CHROME47  -CHROME9  +CHROME48  + + +CHROME49  + + +CHROME8  +CHROME9  + + COAST
Opera Coast mobile browser, http://en.wikipedia.org/wiki/Opera_Coast
- + COAST1  - + DOLFIN2  - + DOWNLOAD  - + EDGE
Family of Microsoft Edge browsers.
+ +EDGE_MOBILE  + EDGE_MOBILE12  @@ -313,17 +325,25 @@

Enum Constant Summary

EDGE12  -EUDORA  +EDGE13  -EVOLUTION  +EUDORA  -FIREFOX  +EVOLUTION  +FIREFOX  + + FIREFOX_MOBILE  + +FIREFOX_MOBILE_IOS +
Firefox for iOS devices.
+ + FIREFOX_MOBILE23  @@ -442,255 +462,264 @@

Enum Constant Summary

FIREFOX42  -FIREFOX5  +FIREFOX43  -FIREFOX6  +FIREFOX44  -FIREFOX7  +FIREFOX45  -FIREFOX8  +FIREFOX5  -FIREFOX9  +FIREFOX6  -FLOCK  +FIREFOX7  +FIREFOX8  + + +FIREFOX9  + + +FLOCK  + + IE
Family of Internet Explorer browsers
- + IE_XBOX  - + IE10  - + IE11  - + IE5  - + IE5_5  - + IE6  - + IE7  - + IE8  - + IE9  - + IEMOBILE10  - + IEMOBILE11
Since 2007 the mobile edition of Internet Explorer identifies itself as IEMobile in the user-agent.
- + IEMOBILE6  - + IEMOBILE7  - + IEMOBILE9  - + KONQUEROR  - + LOTUS_NOTES  - + LYNX  - + MOBILE_SAFARI  - + MOZILLA  - + NETFRONT  - + OMNIWEB  - + OPERA  - + OPERA_MINI  - + OPERA_MOBILE  - + OPERA10  - + OPERA11  - + OPERA12  - + OPERA15  - + OPERA16  - + OPERA17  - + OPERA18  - + OPERA19  - + OPERA20  - + OPERA23  - + OPERA24  - + OPERA25  - + OPERA26  - + OPERA27  - + OPERA28  - + OPERA29  - + OPERA30  - + OPERA31  - + OPERA32  - + OPERA33  - + OPERA34  - + OPERA9  - + OUTLOOK
Outlook email client
- + OUTLOOK_EXPRESS7
Since version 7 Outlook Express is identifying itself.
- + OUTLOOK2007
Microsoft Outlook 2007 identifies itself as MSIE7 but uses the html rendering engine of Word 2007.
- + OUTLOOK2010
Outlook 2010 is still using the rendering engine of Word.
- + OUTLOOK2013  - + POCOMAIL  - + SAFARI  - + SAFARI4  - + SAFARI5  - + SAFARI6  - + SAFARI7  - + SAFARI8  - + SAFARI9  - + SEAMONKEY  - + SILK  - + THEBAT  - + THUNDERBIRD  - + THUNDERBIRD10  - + THUNDERBIRD11  - + THUNDERBIRD12  - + THUNDERBIRD2  - + THUNDERBIRD3  - + THUNDERBIRD6  - + THUNDERBIRD7  - + THUNDERBIRD8  - + UNKNOWN  - + VIVALDI  @@ -1008,13 +1037,13 @@

EDGE

Family of Microsoft Edge browsers. Pretends to be Chrome and claims to be webkit compatible.
- + @@ -1026,6 +1055,24 @@

EDGE_MOBILE12

public static final Browser EDGE_MOBILE12
+ + + + + + + + @@ -1045,6 +1092,33 @@

CHROME_MOBILE

public static final Browser CHROME_MOBILE
+ + + + + + + + + + + + @@ -1405,842 +1479,879 @@

OMNIWEB

public static final Browser OMNIWEB
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + @@ -2705,6 +2816,6 @@

valueOf

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/BrowserType.html b/javadoc/eu/bitwalker/useragentutils/BrowserType.html index fef7f795..ce05d6e4 100644 --- a/javadoc/eu/bitwalker/useragentutils/BrowserType.html +++ b/javadoc/eu/bitwalker/useragentutils/BrowserType.html @@ -2,16 +2,16 @@ - + -BrowserType (User-Agent-Utils 1.18 API) - +BrowserType (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -423,6 +423,6 @@

getName

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/DeviceType.html b/javadoc/eu/bitwalker/useragentutils/DeviceType.html index d35c8fa7..f1fd7c21 100644 --- a/javadoc/eu/bitwalker/useragentutils/DeviceType.html +++ b/javadoc/eu/bitwalker/useragentutils/DeviceType.html @@ -2,16 +2,16 @@ - + -DeviceType (User-Agent-Utils 1.18 API) - +DeviceType (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -411,6 +411,6 @@

getName

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/Manufacturer.html b/javadoc/eu/bitwalker/useragentutils/Manufacturer.html index 9b58c056..5bba0e3b 100644 --- a/javadoc/eu/bitwalker/useragentutils/Manufacturer.html +++ b/javadoc/eu/bitwalker/useragentutils/Manufacturer.html @@ -2,16 +2,16 @@ - + -Manufacturer (User-Agent-Utils 1.18 API) - +Manufacturer (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -667,6 +667,6 @@

getName

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/OperatingSystem.html b/javadoc/eu/bitwalker/useragentutils/OperatingSystem.html index 4cca258e..5f24d0c5 100644 --- a/javadoc/eu/bitwalker/useragentutils/OperatingSystem.html +++ b/javadoc/eu/bitwalker/useragentutils/OperatingSystem.html @@ -2,16 +2,16 @@ - + -OperatingSystem (User-Agent-Utils 1.18 API) - +OperatingSystem (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -168,6 +168,12 @@

Enum Constant Summary

ANDROID5_TABLET  +ANDROID6  + + +ANDROID6_TABLET  + + BADA
Bada is a mobile operating system being developed by Samsung Electronics.
@@ -677,6 +683,24 @@

ANDROID

public static final OperatingSystem ANDROID
+ + + + + + + + @@ -1532,6 +1556,6 @@

valueOf

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/RenderingEngine.html b/javadoc/eu/bitwalker/useragentutils/RenderingEngine.html index 8c8e0925..dda4f8b3 100644 --- a/javadoc/eu/bitwalker/useragentutils/RenderingEngine.html +++ b/javadoc/eu/bitwalker/useragentutils/RenderingEngine.html @@ -2,16 +2,16 @@ - + -RenderingEngine (User-Agent-Utils 1.18 API) - +RenderingEngine (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -443,6 +443,6 @@

valueOf

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/UserAgent.html b/javadoc/eu/bitwalker/useragentutils/UserAgent.html index d2b97ea7..6fc9de60 100644 --- a/javadoc/eu/bitwalker/useragentutils/UserAgent.html +++ b/javadoc/eu/bitwalker/useragentutils/UserAgent.html @@ -2,16 +2,16 @@ - + -UserAgent (User-Agent-Utils 1.18 API) - +UserAgent (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -429,6 +429,6 @@

equals

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/Utils.html b/javadoc/eu/bitwalker/useragentutils/Utils.html index ba140ecb..6bd9884d 100644 --- a/javadoc/eu/bitwalker/useragentutils/Utils.html +++ b/javadoc/eu/bitwalker/useragentutils/Utils.html @@ -2,16 +2,16 @@ - + -Utils (User-Agent-Utils 1.18 API) - +Utils (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -223,6 +223,6 @@

Utils

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/Version.html b/javadoc/eu/bitwalker/useragentutils/Version.html index 499f7838..8341d921 100644 --- a/javadoc/eu/bitwalker/useragentutils/Version.html +++ b/javadoc/eu/bitwalker/useragentutils/Version.html @@ -2,16 +2,16 @@ - + -Version (User-Agent-Utils 1.18 API) - +Version (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -358,6 +358,6 @@

compareTo

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/Application.html b/javadoc/eu/bitwalker/useragentutils/class-use/Application.html index 2cbaf25b..d2b46f4f 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/Application.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/Application.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.Application (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.Application (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -154,6 +154,6 @@

Uses of -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/ApplicationType.html b/javadoc/eu/bitwalker/useragentutils/class-use/ApplicationType.html index 0a83ae3e..000e088b 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/ApplicationType.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/ApplicationType.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.ApplicationType (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.ApplicationType (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -148,6 +148,6 @@

Uses of Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/Browser.html b/javadoc/eu/bitwalker/useragentutils/class-use/Browser.html index 076c9033..2e483f7a 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/Browser.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/Browser.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.Browser (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.Browser (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -204,6 +204,6 @@

Uses of -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/BrowserType.html b/javadoc/eu/bitwalker/useragentutils/class-use/BrowserType.html index 3d09ef53..b72f1dde 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/BrowserType.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/BrowserType.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.BrowserType (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.BrowserType (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -148,6 +148,6 @@

Uses of -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/DeviceType.html b/javadoc/eu/bitwalker/useragentutils/class-use/DeviceType.html index 87d0a3c8..2730071a 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/DeviceType.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/DeviceType.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.DeviceType (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.DeviceType (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -148,6 +148,6 @@

Uses of -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/Manufacturer.html b/javadoc/eu/bitwalker/useragentutils/class-use/Manufacturer.html index a43a50e8..21c15d96 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/Manufacturer.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/Manufacturer.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.Manufacturer (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.Manufacturer (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -158,6 +158,6 @@

Uses of -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/OperatingSystem.html b/javadoc/eu/bitwalker/useragentutils/class-use/OperatingSystem.html index 82a41dea..60f9297d 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/OperatingSystem.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/OperatingSystem.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.OperatingSystem (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.OperatingSystem (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -203,6 +203,6 @@

Uses of Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/RenderingEngine.html b/javadoc/eu/bitwalker/useragentutils/class-use/RenderingEngine.html index 2cc3f46b..e000aa8a 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/RenderingEngine.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/RenderingEngine.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.RenderingEngine (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.RenderingEngine (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -148,6 +148,6 @@

Uses of Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/UserAgent.html b/javadoc/eu/bitwalker/useragentutils/class-use/UserAgent.html index ec545fc4..c3d779ef 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/UserAgent.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/UserAgent.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.UserAgent (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.UserAgent (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -147,6 +147,6 @@

Uses of -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/Utils.html b/javadoc/eu/bitwalker/useragentutils/class-use/Utils.html index 224cad66..8a006ed5 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/Utils.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/Utils.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.Utils (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.Utils (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -110,6 +110,6 @@

Uses o -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/class-use/Version.html b/javadoc/eu/bitwalker/useragentutils/class-use/Version.html index 992a8c43..c5953858 100644 --- a/javadoc/eu/bitwalker/useragentutils/class-use/Version.html +++ b/javadoc/eu/bitwalker/useragentutils/class-use/Version.html @@ -2,16 +2,16 @@ - + -Uses of Class eu.bitwalker.useragentutils.Version (User-Agent-Utils 1.18 API) - +Uses of Class eu.bitwalker.useragentutils.Version (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -156,6 +156,6 @@

Uses of -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/package-frame.html b/javadoc/eu/bitwalker/useragentutils/package-frame.html index 9bb8dfa4..3cb4e5d2 100644 --- a/javadoc/eu/bitwalker/useragentutils/package-frame.html +++ b/javadoc/eu/bitwalker/useragentutils/package-frame.html @@ -2,10 +2,10 @@ - + -eu.bitwalker.useragentutils (User-Agent-Utils 1.18 API) - +eu.bitwalker.useragentutils (User-Agent-Utils 1.19-SNAPSHOT API) + diff --git a/javadoc/eu/bitwalker/useragentutils/package-summary.html b/javadoc/eu/bitwalker/useragentutils/package-summary.html index 7e3bfd51..d60f5442 100644 --- a/javadoc/eu/bitwalker/useragentutils/package-summary.html +++ b/javadoc/eu/bitwalker/useragentutils/package-summary.html @@ -2,16 +2,16 @@ - + -eu.bitwalker.useragentutils (User-Agent-Utils 1.18 API) - +eu.bitwalker.useragentutils (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -198,6 +198,6 @@

Package eu.bitwalker.useragentutils

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/package-tree.html b/javadoc/eu/bitwalker/useragentutils/package-tree.html index 47fe7dab..8b345077 100644 --- a/javadoc/eu/bitwalker/useragentutils/package-tree.html +++ b/javadoc/eu/bitwalker/useragentutils/package-tree.html @@ -2,16 +2,16 @@ - + -eu.bitwalker.useragentutils Class Hierarchy (User-Agent-Utils 1.18 API) - +eu.bitwalker.useragentutils Class Hierarchy (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -140,6 +140,6 @@

Enum Hierarchy

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/eu/bitwalker/useragentutils/package-use.html b/javadoc/eu/bitwalker/useragentutils/package-use.html index ab0286a1..88b2e785 100644 --- a/javadoc/eu/bitwalker/useragentutils/package-use.html +++ b/javadoc/eu/bitwalker/useragentutils/package-use.html @@ -2,16 +2,16 @@ - + -Uses of Package eu.bitwalker.useragentutils (User-Agent-Utils 1.18 API) - +Uses of Package eu.bitwalker.useragentutils (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -174,6 +174,6 @@

Uses of Pa -

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/help-doc.html b/javadoc/help-doc.html index 5139376c..1a6b9992 100644 --- a/javadoc/help-doc.html +++ b/javadoc/help-doc.html @@ -2,16 +2,16 @@ - + -API Help (User-Agent-Utils 1.18 API) - +API Help (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -211,6 +211,6 @@

Constant Field Values

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/index-all.html b/javadoc/index-all.html index 3378d798..94fb0348 100644 --- a/javadoc/index-all.html +++ b/javadoc/index-all.html @@ -2,16 +2,16 @@ - + -Index (User-Agent-Utils 1.18 API) - +Index (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -457,6 +457,6 @@

V

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/index.html b/javadoc/index.html index de896a8f..8d22f1c9 100644 --- a/javadoc/index.html +++ b/javadoc/index.html @@ -2,9 +2,9 @@ - + -User-Agent-Utils 1.18 API +User-Agent-Utils 1.19-SNAPSHOT API @@ -144,6 +144,6 @@

Enum Hierarchy

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/javadoc/serialized-form.html b/javadoc/serialized-form.html index 4e1e3d85..dc720822 100644 --- a/javadoc/serialized-form.html +++ b/javadoc/serialized-form.html @@ -2,16 +2,16 @@ - + -Serialized Form (User-Agent-Utils 1.18 API) - +Serialized Form (User-Agent-Utils 1.19-SNAPSHOT API) + @@ -152,6 +152,6 @@

userAgentString

-

Copyright © 2015. All rights reserved.

+

Copyright © 2016. All rights reserved.

diff --git a/pom.xml b/pom.xml index 90d42425..54e2fceb 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ User-Agent-Utils http://www.bitwalker.eu/software/user-agent-utils UserAgentUtils - 1.18 + 1.19-SNAPSHOT Utility classes to handle user-agents. github diff --git a/src/main/java/eu/bitwalker/useragentutils/Application.java b/src/main/java/eu/bitwalker/useragentutils/Application.java index b025c6d8..1c146976 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Application.java +++ b/src/main/java/eu/bitwalker/useragentutils/Application.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers + * Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/main/java/eu/bitwalker/useragentutils/ApplicationType.java b/src/main/java/eu/bitwalker/useragentutils/ApplicationType.java index 3a43f8cc..66924635 100644 --- a/src/main/java/eu/bitwalker/useragentutils/ApplicationType.java +++ b/src/main/java/eu/bitwalker/useragentutils/ApplicationType.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index 76575a71..5ade9db9 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or @@ -97,15 +97,20 @@ public enum Browser { /** * Family of Microsoft Edge browsers. Pretends to be Chrome and claims to be webkit compatible. */ - EDGE(Manufacturer.MICROSOFT, null, 300, "Microsoft Edge", new String[] {"Edge"}, null, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, "(?:Edge\\/((12)\\.([0-9]*)))"), - EDGE12(Manufacturer.MICROSOFT, Browser.EDGE, 301, "Microsoft Edge", new String[] {"Edge/12"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, "(?:Edge\\/((12)\\.([0-9]*)))" ), - EDGE_MOBILE12(Manufacturer.MICROSOFT, Browser.EDGE, 302, "Microsoft Edge Mobile", new String[] {"Mobile Safari", "Edge/12"}, null, BrowserType.MOBILE_BROWSER, RenderingEngine.EDGE_HTML, "(?:Edge\\/((12)\\.([0-9]*)))" ), + EDGE( Manufacturer.MICROSOFT, null, 300, "Microsoft Edge", new String[] {"Edge"}, null, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, "(?:Edge\\/(([0-9]+)\\.([0-9]*)))"), + EDGE_MOBILE( Manufacturer.MICROSOFT, Browser.EDGE, 304, "Microsoft Edge Mobile", new String[] {"Mobile Safari"}, null, BrowserType.MOBILE_BROWSER, RenderingEngine.EDGE_HTML, null ), + EDGE_MOBILE12(Manufacturer.MICROSOFT, Browser.EDGE_MOBILE, 302, "Microsoft Edge Mobile 12", new String[] {"Mobile Safari", "Edge/12"}, null, BrowserType.MOBILE_BROWSER, RenderingEngine.EDGE_HTML, null ), + EDGE13( Manufacturer.MICROSOFT, Browser.EDGE, 303, "Microsoft Edge 13", new String[] {"Edge/13"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), + EDGE12( Manufacturer.MICROSOFT, Browser.EDGE, 301, "Microsoft Edge 12", new String[] {"Edge/12"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), /** * Google Chrome browser */ CHROME( Manufacturer.GOOGLE, null, 1, "Chrome", new String[] { "Chrome", "CrMo", "CriOS" }, new String[] { "OPR/", "Web Preview", "Vivaldi" } , BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, "Chrome\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?(\\.[\\w]+)?)" ), // before Mozilla CHROME_MOBILE( Manufacturer.GOOGLE, Browser.CHROME, 100, "Chrome Mobile", new String[] { "CrMo","CriOS", "Mobile Safari" }, new String[] {"OPR/"}, BrowserType.MOBILE_BROWSER, RenderingEngine.WEBKIT, "(?:CriOS|CrMo|Chrome)\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?(\\.[\\w]+)?)" ), + CHROME49( Manufacturer.GOOGLE, Browser.CHROME, 55, "Chrome 49", new String[] { "Chrome/49" }, new String[] { "OPR/", "Web Preview", "Vivaldi" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before Mozilla + CHROME48( Manufacturer.GOOGLE, Browser.CHROME, 53, "Chrome 48", new String[] { "Chrome/48" }, new String[] { "OPR/", "Web Preview", "Vivaldi" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before Mozilla + CHROME47( Manufacturer.GOOGLE, Browser.CHROME, 52, "Chrome 47", new String[] { "Chrome/47" }, new String[] { "OPR/", "Web Preview", "Vivaldi" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before Mozilla CHROME46( Manufacturer.GOOGLE, Browser.CHROME, 51, "Chrome 46", new String[] { "Chrome/46" }, new String[] { "OPR/", "Web Preview", "Vivaldi" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before Mozilla CHROME45( Manufacturer.GOOGLE, Browser.CHROME, 50, "Chrome 45", new String[] { "Chrome/45" }, new String[] { "OPR/", "Web Preview", "Vivaldi" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before Mozilla CHROME44( Manufacturer.GOOGLE, Browser.CHROME, 49, "Chrome 44", new String[] { "Chrome/44" }, new String[] { "OPR/", "Web Preview", "Vivaldi" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before Mozilla @@ -148,9 +153,64 @@ public enum Browser { OMNIWEB( Manufacturer.OTHER, null, 2, "Omniweb", new String[] { "OmniWeb" }, null, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null), // - SAFARI( Manufacturer.APPLE, null, 1, "Safari", new String[] { "Safari" }, new String[] { "bot", "preview", "OPR/", "Coast/", "Vivaldi","CFNetwork" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, "Version\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?)" ), // before AppleWebKit + FIREFOX( Manufacturer.MOZILLA, null, 10, "Firefox", new String[] { "Firefox", "FxiOS" }, new String[] {"camino", "flock", "ggpht.com", "WordPress.com mShots"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, "Firefox\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?(\\.[\\w]+)?)"), // using Gecko Engine + FIREFOX3MOBILE( Manufacturer.MOZILLA, Browser.FIREFOX, 31, "Firefox 3 Mobile", new String[] { "Firefox/3.5 Maemo" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX_MOBILE( Manufacturer.MOZILLA, Browser.FIREFOX, 200, "Firefox Mobile", new String[] { "Mobile" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX_MOBILE23(Manufacturer.MOZILLA, FIREFOX_MOBILE, 223, "Firefox Mobile 23", new String[] { "Firefox/23" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + /** + * Firefox for iOS devices. This Firefox version is using webkit instead of gecko rendering engine. + */ + FIREFOX_MOBILE_IOS(Manufacturer.MOZILLA, FIREFOX_MOBILE, 224, "Firefox Mobile (iOS)", new String[] { "FxiOS" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.WEBKIT, null ), + FIREFOX45( Manufacturer.MOZILLA, Browser.FIREFOX, 222, "Firefox 45", new String[] { "Firefox/45" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX44( Manufacturer.MOZILLA, Browser.FIREFOX, 221, "Firefox 44", new String[] { "Firefox/44" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX43( Manufacturer.MOZILLA, Browser.FIREFOX, 220, "Firefox 43", new String[] { "Firefox/43" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX42( Manufacturer.MOZILLA, Browser.FIREFOX, 219, "Firefox 42", new String[] { "Firefox/42" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX41( Manufacturer.MOZILLA, Browser.FIREFOX, 218, "Firefox 41", new String[] { "Firefox/41" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX40( Manufacturer.MOZILLA, Browser.FIREFOX, 217, "Firefox 40", new String[] { "Firefox/40" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX39( Manufacturer.MOZILLA, Browser.FIREFOX, 216, "Firefox 39", new String[] { "Firefox/39" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX38( Manufacturer.MOZILLA, Browser.FIREFOX, 215, "Firefox 38", new String[] { "Firefox/38" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX37( Manufacturer.MOZILLA, Browser.FIREFOX, 214, "Firefox 37", new String[] { "Firefox/37" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX36( Manufacturer.MOZILLA, Browser.FIREFOX, 213, "Firefox 36", new String[] { "Firefox/36" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX35( Manufacturer.MOZILLA, Browser.FIREFOX, 212, "Firefox 35", new String[] { "Firefox/35" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX34( Manufacturer.MOZILLA, Browser.FIREFOX, 211, "Firefox 34", new String[] { "Firefox/34" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX33( Manufacturer.MOZILLA, Browser.FIREFOX, 210, "Firefox 33", new String[] { "Firefox/33" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX32( Manufacturer.MOZILLA, Browser.FIREFOX, 109, "Firefox 32", new String[] { "Firefox/32" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX31( Manufacturer.MOZILLA, Browser.FIREFOX, 310, "Firefox 31", new String[] { "Firefox/31" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX30( Manufacturer.MOZILLA, Browser.FIREFOX, 300, "Firefox 30", new String[] { "Firefox/30" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX29( Manufacturer.MOZILLA, Browser.FIREFOX, 290, "Firefox 29", new String[] { "Firefox/29" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX28( Manufacturer.MOZILLA, Browser.FIREFOX, 280, "Firefox 28", new String[] { "Firefox/28" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX27( Manufacturer.MOZILLA, Browser.FIREFOX, 108, "Firefox 27", new String[] { "Firefox/27" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX26( Manufacturer.MOZILLA, Browser.FIREFOX, 107, "Firefox 26", new String[] { "Firefox/26" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX25( Manufacturer.MOZILLA, Browser.FIREFOX, 106, "Firefox 25", new String[] { "Firefox/25" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX24( Manufacturer.MOZILLA, Browser.FIREFOX, 105, "Firefox 24", new String[] { "Firefox/24" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX23( Manufacturer.MOZILLA, Browser.FIREFOX, 104, "Firefox 23", new String[] { "Firefox/23" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX22( Manufacturer.MOZILLA, Browser.FIREFOX, 103, "Firefox 22", new String[] { "Firefox/22" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX21( Manufacturer.MOZILLA, Browser.FIREFOX, 102, "Firefox 21", new String[] { "Firefox/21" }, new String[]{"WordPress.com mShots"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX20( Manufacturer.MOZILLA, Browser.FIREFOX, 101, "Firefox 20", new String[] { "Firefox/20" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX19( Manufacturer.MOZILLA, Browser.FIREFOX, 100, "Firefox 19", new String[] { "Firefox/19" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX18( Manufacturer.MOZILLA, Browser.FIREFOX, 99, "Firefox 18", new String[] { "Firefox/18" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX17( Manufacturer.MOZILLA, Browser.FIREFOX, 98, "Firefox 17", new String[] { "Firefox/17" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX16( Manufacturer.MOZILLA, Browser.FIREFOX, 97, "Firefox 16", new String[] { "Firefox/16" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX15( Manufacturer.MOZILLA, Browser.FIREFOX, 96, "Firefox 15", new String[] { "Firefox/15" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX14( Manufacturer.MOZILLA, Browser.FIREFOX, 95, "Firefox 14", new String[] { "Firefox/14" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX13( Manufacturer.MOZILLA, Browser.FIREFOX, 94, "Firefox 13", new String[] { "Firefox/13" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX12( Manufacturer.MOZILLA, Browser.FIREFOX, 93, "Firefox 12", new String[] { "Firefox/12" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX11( Manufacturer.MOZILLA, Browser.FIREFOX, 92, "Firefox 11", new String[] { "Firefox/11" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX10( Manufacturer.MOZILLA, Browser.FIREFOX, 91, "Firefox 10", new String[] { "Firefox/10" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX9( Manufacturer.MOZILLA, Browser.FIREFOX, 90, "Firefox 9", new String[] { "Firefox/9" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX8( Manufacturer.MOZILLA, Browser.FIREFOX, 80, "Firefox 8", new String[] { "Firefox/8" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX7( Manufacturer.MOZILLA, Browser.FIREFOX, 70, "Firefox 7", new String[] { "Firefox/7" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX6( Manufacturer.MOZILLA, Browser.FIREFOX, 60, "Firefox 6", new String[] { "Firefox/6." }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX5( Manufacturer.MOZILLA, Browser.FIREFOX, 50, "Firefox 5", new String[] { "Firefox/5." }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX4( Manufacturer.MOZILLA, Browser.FIREFOX, 40, "Firefox 4", new String[] { "Firefox/4." }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX3( Manufacturer.MOZILLA, Browser.FIREFOX, 30, "Firefox 3", new String[] { "Firefox/3." }, new String[] {"Camino", "Flock", "ggpht.com"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX2( Manufacturer.MOZILLA, Browser.FIREFOX, 20, "Firefox 2", new String[] { "Firefox/2." }, new String[]{"Camino", "WordPress.com mShots"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + FIREFOX1_5( Manufacturer.MOZILLA, Browser.FIREFOX, 15, "Firefox 1.5", new String[] { "Firefox/1.5" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine + + + SAFARI( Manufacturer.APPLE, null, 1, "Safari", new String[] { "Safari" }, new String[] { "bot", "preview", "OPR/", "Coast/", "Vivaldi","CFNetwork", "Phantom" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, "Version\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?)" ), // before AppleWebKit BLACKBERRY10( Manufacturer.BLACKBERRY, Browser.SAFARI, 10, "BlackBerry", new String[] { "BB10" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.WEBKIT, null), - MOBILE_SAFARI( Manufacturer.APPLE, Browser.SAFARI, 2, "Mobile Safari", new String[] { "Mobile Safari","Mobile/" }, new String[] { "bot", "preview", "OPR/", "Coast/", "Vivaldi", "CFNetwork" }, BrowserType.MOBILE_BROWSER, RenderingEngine.WEBKIT, null ), // before Safari + MOBILE_SAFARI( Manufacturer.APPLE, Browser.SAFARI, 2, "Mobile Safari", new String[] { "Mobile Safari","Mobile/" }, new String[] { "bot", "preview", "OPR/", "Coast/", "Vivaldi", "CFNetwork", "FxiOS" }, BrowserType.MOBILE_BROWSER, RenderingEngine.WEBKIT, null ), // before Safari SILK( Manufacturer.AMAZON, Browser.SAFARI, 15, "Silk", new String[] { "Silk/" }, null, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, "Silk\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?(\\-[\\w]+)?)" ), // http://en.wikipedia.org/wiki/Amazon_Silk SAFARI9( Manufacturer.APPLE, Browser.SAFARI, 9, "Safari 9", new String[] { "Version/9" }, new String[] { "Applebot" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before AppleWebKit SAFARI8( Manufacturer.APPLE, Browser.SAFARI, 8, "Safari 8", new String[] { "Version/8" }, new String[] { "Applebot" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null ), // before AppleWebKit @@ -197,7 +257,7 @@ public enum Browser { /* * Apple WebKit compatible client. Can be a browser or an application with embedded browser using UIWebView. */ - APPLE_WEB_KIT( Manufacturer.APPLE, null, 50, "Apple WebKit", new String[] { "AppleWebKit" }, new String[] { "bot", "preview", "OPR/", "Coast/", "Vivaldi" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null), // Microsoft Entrourage/Outlook 2010 also only identifies itself as AppleWebKit + APPLE_WEB_KIT( Manufacturer.APPLE, null, 50, "Apple WebKit", new String[] { "AppleWebKit" }, new String[] { "bot", "preview", "OPR/", "Coast/", "Vivaldi", "Phantom" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null), // Microsoft Entrourage/Outlook 2010 also only identifies itself as AppleWebKit APPLE_ITUNES( Manufacturer.APPLE, Browser.APPLE_WEB_KIT, 52, "iTunes", new String[] { "iTunes" }, null, BrowserType.APP, RenderingEngine.WEBKIT, null), // Microsoft Entrourage/Outlook 2010 also only identifies itself as AppleWebKit APPLE_APPSTORE( Manufacturer.APPLE, Browser.APPLE_WEB_KIT, 53, "App Store", new String[] { "MacAppStore" }, null, BrowserType.APP, RenderingEngine.WEBKIT, null), // Microsoft Entrourage/Outlook 2010 also only identifies itself as AppleWebKit ADOBE_AIR( Manufacturer.ADOBE, Browser.APPLE_WEB_KIT, 1, "Adobe AIR application", new String[] { "AdobeAIR" }, null, BrowserType.APP, RenderingEngine.WEBKIT, null), // Microsoft Entrourage/Outlook 2010 also only identifies itself as AppleWebKit @@ -209,53 +269,6 @@ public enum Browser { FLOCK( Manufacturer.OTHER, null, 4, "Flock", new String[]{"Flock"}, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, "Flock\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?)"), - FIREFOX( Manufacturer.MOZILLA, null, 10, "Firefox", new String[] { "Firefox" }, new String[] {"ggpht.com", "WordPress.com mShots"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, "Firefox\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?(\\.[\\w]+)?)"), // using Gecko Engine - FIREFOX3MOBILE( Manufacturer.MOZILLA, Browser.FIREFOX, 31, "Firefox 3 Mobile", new String[] { "Firefox/3.5 Maemo" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX_MOBILE( Manufacturer.MOZILLA, Browser.FIREFOX, 200, "Firefox Mobile", new String[] { "Mobile" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX_MOBILE23(Manufacturer.MOZILLA, FIREFOX_MOBILE, 223, "Firefox Mobile 23", new String[] { "Firefox/23" }, null, BrowserType.MOBILE_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX42( Manufacturer.MOZILLA, Browser.FIREFOX, 219, "Firefox 42", new String[] { "Firefox/42" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX41( Manufacturer.MOZILLA, Browser.FIREFOX, 218, "Firefox 41", new String[] { "Firefox/41" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX40( Manufacturer.MOZILLA, Browser.FIREFOX, 217, "Firefox 40", new String[] { "Firefox/40" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX39( Manufacturer.MOZILLA, Browser.FIREFOX, 216, "Firefox 39", new String[] { "Firefox/39" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX38( Manufacturer.MOZILLA, Browser.FIREFOX, 215, "Firefox 38", new String[] { "Firefox/38" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX37( Manufacturer.MOZILLA, Browser.FIREFOX, 214, "Firefox 37", new String[] { "Firefox/37" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX36( Manufacturer.MOZILLA, Browser.FIREFOX, 213, "Firefox 36", new String[] { "Firefox/36" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX35( Manufacturer.MOZILLA, Browser.FIREFOX, 212, "Firefox 35", new String[] { "Firefox/35" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX34( Manufacturer.MOZILLA, Browser.FIREFOX, 211, "Firefox 34", new String[] { "Firefox/34" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX33( Manufacturer.MOZILLA, Browser.FIREFOX, 210, "Firefox 33", new String[] { "Firefox/33" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX32( Manufacturer.MOZILLA, Browser.FIREFOX, 109, "Firefox 32", new String[] { "Firefox/32" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX31( Manufacturer.MOZILLA, Browser.FIREFOX, 310, "Firefox 31", new String[] { "Firefox/31" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX30( Manufacturer.MOZILLA, Browser.FIREFOX, 300, "Firefox 30", new String[] { "Firefox/30" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX29( Manufacturer.MOZILLA, Browser.FIREFOX, 290, "Firefox 29", new String[] { "Firefox/29" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX28( Manufacturer.MOZILLA, Browser.FIREFOX, 280, "Firefox 28", new String[] { "Firefox/28" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX27( Manufacturer.MOZILLA, Browser.FIREFOX, 108, "Firefox 27", new String[] { "Firefox/27" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX26( Manufacturer.MOZILLA, Browser.FIREFOX, 107, "Firefox 26", new String[] { "Firefox/26" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX25( Manufacturer.MOZILLA, Browser.FIREFOX, 106, "Firefox 25", new String[] { "Firefox/25" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX24( Manufacturer.MOZILLA, Browser.FIREFOX, 105, "Firefox 24", new String[] { "Firefox/24" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX23( Manufacturer.MOZILLA, Browser.FIREFOX, 104, "Firefox 23", new String[] { "Firefox/23" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX22( Manufacturer.MOZILLA, Browser.FIREFOX, 103, "Firefox 22", new String[] { "Firefox/22" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX21( Manufacturer.MOZILLA, Browser.FIREFOX, 102, "Firefox 21", new String[] { "Firefox/21" }, new String[]{"WordPress.com mShots"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX20( Manufacturer.MOZILLA, Browser.FIREFOX, 101, "Firefox 20", new String[] { "Firefox/20" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX19( Manufacturer.MOZILLA, Browser.FIREFOX, 100, "Firefox 19", new String[] { "Firefox/19" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX18( Manufacturer.MOZILLA, Browser.FIREFOX, 99, "Firefox 18", new String[] { "Firefox/18" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX17( Manufacturer.MOZILLA, Browser.FIREFOX, 98, "Firefox 17", new String[] { "Firefox/17" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX16( Manufacturer.MOZILLA, Browser.FIREFOX, 97, "Firefox 16", new String[] { "Firefox/16" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX15( Manufacturer.MOZILLA, Browser.FIREFOX, 96, "Firefox 15", new String[] { "Firefox/15" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX14( Manufacturer.MOZILLA, Browser.FIREFOX, 95, "Firefox 14", new String[] { "Firefox/14" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX13( Manufacturer.MOZILLA, Browser.FIREFOX, 94, "Firefox 13", new String[] { "Firefox/13" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX12( Manufacturer.MOZILLA, Browser.FIREFOX, 93, "Firefox 12", new String[] { "Firefox/12" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX11( Manufacturer.MOZILLA, Browser.FIREFOX, 92, "Firefox 11", new String[] { "Firefox/11" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX10( Manufacturer.MOZILLA, Browser.FIREFOX, 91, "Firefox 10", new String[] { "Firefox/10" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX9( Manufacturer.MOZILLA, Browser.FIREFOX, 90, "Firefox 9", new String[] { "Firefox/9" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX8( Manufacturer.MOZILLA, Browser.FIREFOX, 80, "Firefox 8", new String[] { "Firefox/8" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX7( Manufacturer.MOZILLA, Browser.FIREFOX, 70, "Firefox 7", new String[] { "Firefox/7" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX6( Manufacturer.MOZILLA, Browser.FIREFOX, 60, "Firefox 6", new String[] { "Firefox/6" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX5( Manufacturer.MOZILLA, Browser.FIREFOX, 50, "Firefox 5", new String[] { "Firefox/5" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX4( Manufacturer.MOZILLA, Browser.FIREFOX, 40, "Firefox 4", new String[] { "Firefox/4" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX3( Manufacturer.MOZILLA, Browser.FIREFOX, 30, "Firefox 3", new String[] { "Firefox/3" }, new String[] {"ggpht.com"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX2( Manufacturer.MOZILLA, Browser.FIREFOX, 20, "Firefox 2", new String[] { "Firefox/2" }, new String[]{"WordPress.com mShots"}, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - FIREFOX1_5( Manufacturer.MOZILLA, Browser.FIREFOX, 15, "Firefox 1.5", new String[] { "Firefox/1.5" }, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, null ), // using Gecko Engine - /* * Thunderbird email client, based on the same Gecko engine Firefox is using. */ @@ -273,7 +286,7 @@ public enum Browser { SEAMONKEY( Manufacturer.OTHER, null, 15, "SeaMonkey", new String[]{"SeaMonkey"}, null, BrowserType.WEB_BROWSER, RenderingEngine.GECKO, "SeaMonkey\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?)"), // using Gecko Engine - BOT( Manufacturer.OTHER, null,12, "Robot/Spider", new String[] {"Googlebot", "Mediapartners-Google", "Web Preview", "bot", "Applebot" , "spider", "crawler", "Feedfetcher", "Slurp", "Twiceler", "Nutch", "BecomeBot", "bingbot", "BingPreview", "Google Web Preview", "WordPress.com mShots", "Seznam", "facebookexternalhit" , "YandexMarket", "Teoma", "ThumbSniper", "Phantom.js"}, null, BrowserType.ROBOT, RenderingEngine.OTHER, null), + BOT( Manufacturer.OTHER, null,12, "Robot/Spider", new String[] {"Googlebot", "Mediapartners-Google", "Web Preview", "bot", "Applebot" , "spider", "crawler", "Feedfetcher", "Slurp", "Twiceler", "Nutch", "BecomeBot", "bingbot", "BingPreview", "Google Web Preview", "WordPress.com mShots", "Seznam", "facebookexternalhit" , "YandexMarket", "Teoma", "ThumbSniper", "Phantom"}, null, BrowserType.ROBOT, RenderingEngine.OTHER, null), BOT_MOBILE( Manufacturer.OTHER, Browser.BOT, 20 , "Mobil Robot/Spider", new String[] {"Googlebot-Mobile"}, null, BrowserType.ROBOT, RenderingEngine.OTHER, null), MOZILLA( Manufacturer.MOZILLA, null, 1, "Mozilla", new String[] { "Mozilla", "Moozilla" }, new String[] {"ggpht.com"}, BrowserType.WEB_BROWSER, RenderingEngine.OTHER, null), // rest of the mozilla browsers diff --git a/src/main/java/eu/bitwalker/useragentutils/BrowserType.java b/src/main/java/eu/bitwalker/useragentutils/BrowserType.java index 497b2749..8009e978 100644 --- a/src/main/java/eu/bitwalker/useragentutils/BrowserType.java +++ b/src/main/java/eu/bitwalker/useragentutils/BrowserType.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/main/java/eu/bitwalker/useragentutils/DeviceType.java b/src/main/java/eu/bitwalker/useragentutils/DeviceType.java index f8f87c94..b212cc25 100644 --- a/src/main/java/eu/bitwalker/useragentutils/DeviceType.java +++ b/src/main/java/eu/bitwalker/useragentutils/DeviceType.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/main/java/eu/bitwalker/useragentutils/Manufacturer.java b/src/main/java/eu/bitwalker/useragentutils/Manufacturer.java index c82ff626..39d86a8f 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Manufacturer.java +++ b/src/main/java/eu/bitwalker/useragentutils/Manufacturer.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java index a9626004..f8990129 100644 --- a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java +++ b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or @@ -68,8 +68,10 @@ public enum OperatingSystem { XBOX_OS(Manufacturer.MICROSOFT, OperatingSystem.WINDOWS,62, "Xbox OS",new String[]{"xbox"},new String[]{}, DeviceType.GAME_CONSOLE, null), ANDROID( Manufacturer.GOOGLE,null, 0, "Android", new String[] { "Android" }, new String[] {"Ubuntu"}, DeviceType.MOBILE, null ), - ANDROID5( Manufacturer.GOOGLE,OperatingSystem.ANDROID, 5, "Android 5.x", new String[] { "Android 5", "Android-5" }, new String[] { "glass" }, DeviceType.MOBILE, null ), - ANDROID5_TABLET(Manufacturer.GOOGLE,OperatingSystem.ANDROID5, 50, "Android 5.x Tablet", new String[] { "Android 5", "Android-5"}, new String[] { "mobile", "glass"}, DeviceType.TABLET, null ), + ANDROID6( Manufacturer.GOOGLE,OperatingSystem.ANDROID, 6, "Android 6.x", new String[] { "Android 6", "Android-6" }, new String[] { "glass" }, DeviceType.MOBILE, null ), + ANDROID6_TABLET(Manufacturer.GOOGLE,OperatingSystem.ANDROID6, 60, "Android 6.x Tablet", new String[] { "Android 6", "Android-6"}, new String[] { "mobile", "glass"}, DeviceType.TABLET, null ), + ANDROID5( Manufacturer.GOOGLE,OperatingSystem.ANDROID, 5, "Android 5.x", new String[] { "Android 5", "Android-5" }, new String[] { "glass" }, DeviceType.MOBILE, null ), + ANDROID5_TABLET(Manufacturer.GOOGLE,OperatingSystem.ANDROID5, 50, "Android 5.x Tablet", new String[] { "Android 5", "Android-5"}, new String[] { "mobile", "glass"}, DeviceType.TABLET, null ), ANDROID4( Manufacturer.GOOGLE,OperatingSystem.ANDROID, 4, "Android 4.x", new String[] { "Android 4", "Android-4" }, new String[] { "glass", "ubuntu"}, DeviceType.MOBILE, null ), ANDROID4_TABLET(Manufacturer.GOOGLE,OperatingSystem.ANDROID4, 40, "Android 4.x Tablet", new String[] { "Android 4", "Android-4"}, new String[] { "mobile", "glass", "ubuntu" }, DeviceType.TABLET, null ), ANDROID4_WEARABLE(Manufacturer.GOOGLE,OperatingSystem.ANDROID, 400, "Android 4.x", new String[] { "Android 4" }, new String[] {"ubuntu"}, DeviceType.WEARABLE, null ), @@ -261,7 +263,7 @@ public String getName() { /* * Shortcut to check of an operating system is a mobile device. - * Left in here for backwards compatibility. Use .getDeciceType() instead. + * Left in here for backwards compatibility. Use .getDeviceType() instead. */ @Deprecated public boolean isMobileDevice() { diff --git a/src/main/java/eu/bitwalker/useragentutils/RenderingEngine.java b/src/main/java/eu/bitwalker/useragentutils/RenderingEngine.java index 845e4f3a..d9bb43ec 100644 --- a/src/main/java/eu/bitwalker/useragentutils/RenderingEngine.java +++ b/src/main/java/eu/bitwalker/useragentutils/RenderingEngine.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/main/java/eu/bitwalker/useragentutils/UserAgent.java b/src/main/java/eu/bitwalker/useragentutils/UserAgent.java index 9a683e09..a3699b25 100644 --- a/src/main/java/eu/bitwalker/useragentutils/UserAgent.java +++ b/src/main/java/eu/bitwalker/useragentutils/UserAgent.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/main/java/eu/bitwalker/useragentutils/Version.java b/src/main/java/eu/bitwalker/useragentutils/Version.java index 9e4bb7ac..6d5b695c 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Version.java +++ b/src/main/java/eu/bitwalker/useragentutils/Version.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/test/java/eu/bitwalker/useragentutils/ApplicationTest.java b/src/test/java/eu/bitwalker/useragentutils/ApplicationTest.java index c3989d61..21e97b42 100644 --- a/src/test/java/eu/bitwalker/useragentutils/ApplicationTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/ApplicationTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers + * Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or diff --git a/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java b/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java index 78ce0a46..751bbe50 100644 --- a/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or @@ -87,11 +87,15 @@ public class BrowserTest { "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; ASU2JS; rv:11.0) like Gecko", //64bit Win8 }; - String[] edgeClients = new String[] { + String[] edge12Clients = new String[] { "Mozilla/5.0 (Windows NT 6.4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0", "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10532" }; + + String [] edge13Clients = new String[] { + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586" + }; String[] edgeMobileClients = new String[] { "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; DEVICE INFO) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.0" @@ -275,7 +279,7 @@ public class BrowserTest { String[] firefox6 = new String[] { "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110612 Firefox/6.0a2" }; - + String[] firefox19 = new String[] { "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:19.0) Gecko/20100101 Firefox/19.0" }; @@ -297,13 +301,21 @@ public class BrowserTest { }; String[] firefoxMobile = { - "Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0" + "Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0", }; + String[] firefoxMobileForIos = { + "Mozilla/5.0 (iPad; CPU OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) FxiOS/1.2 Mobile/13C75 Safari/601.1.46" + }; + String[] firefoxMobile23 = { "Mozilla/5.0 (Android; Mobile; rv:23.0) Gecko/23.0 Firefox/23.0" }; + String[] futureFirefoxVersion = new String[] { + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:28.0) Gecko/20100101 Firefox/60.0" + }; + String[] safari = { "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.28.3", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-gb) AppleWebKit/523.10.6 (KHTML, like Gecko) Version/3.0.4 Safari/523.10.6" @@ -612,7 +624,8 @@ public void testParseUserAgentString() { testAgents(ie9clients, Browser.IE9); testAgents(ie10clients, Browser.IE10); testAgents(ie11clients, Browser.IE11); - testAgents(edgeClients, Browser.EDGE12); + testAgents(edge12Clients, Browser.EDGE12); + testAgents(edge13Clients, Browser.EDGE13); testAgents(edgeMobileClients, Browser.EDGE_MOBILE12); testAgents(ieTooOld, Browser.IE); testAgents(outlook2007, Browser.OUTLOOK2007); @@ -654,7 +667,9 @@ public void testParseUserAgentString() { testAgents(firefox25, Browser.FIREFOX25); testAgents(firefox3mobile, Browser.FIREFOX3MOBILE); testAgents(firefoxMobile, Browser.FIREFOX_MOBILE); + testAgents(firefoxMobileForIos, Browser.FIREFOX_MOBILE_IOS); testAgents(firefoxMobile23, Browser.FIREFOX_MOBILE23); + testAgents(futureFirefoxVersion, Browser.FIREFOX); testAgents(safari, Browser.SAFARI); testAgents(dolfin, Browser.DOLFIN2); testAgents(safari8, Browser.SAFARI8); @@ -704,7 +719,7 @@ public void testParseUserAgentString() { @Test public void testCustomUserAgentParsing() { // Test limited to the big browser families. As Camino can not be detected any longer, the second best match is Firefox3 (a child of Firefox). - for (String agentString : camino2) { + for (String agentString : firefox3) { assertEquals(Browser.FIREFOX3, Browser.parseUserAgentString(agentString,Arrays.asList(Browser.IE,Browser.CHROME, Browser.APPLE_WEB_KIT, Browser.FIREFOX))); } // When there is no match in the given set, return UNKNOWN diff --git a/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java b/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java index 1d1ccacd..c39f418a 100644 --- a/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or @@ -44,8 +44,6 @@ import org.junit.Test; -import eu.bitwalker.useragentutils.Application; - /** * Test class for application detection. * @author harald diff --git a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java index 2554061d..c7c1f3fb 100644 --- a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2014, Harald Walker (bitwalker.eu) and contributing developers +* Copyright (c) 2008-2016, Harald Walker (bitwalker.eu) and contributing developers * All rights reserved. * * Redistribution and use in source and binary forms, with or @@ -255,9 +255,14 @@ public class OperatingSystemTest { //"Dalvik/2.0.0 (Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) evme/2.0.2533" // disabled as it is not clear yet, which client sends this incomplete user-agent }; - String[] android5g = { - "Mozilla/5.0 (Linux; Android 5.0; Nexus 4 Build/LRX21L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36" - }; + String[] android5g = { + "Mozilla/5.0 (Linux; Android 5.0; Nexus 4 Build/LRX21L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36" + }; + + String[] android6g = { + "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/46.0.2490.76 Mobile Safari/537.36", // Nexus 5 WebView + "Mozilla/5.0 (Linux; Android 6.0; Nexus 5X Build/MDB08L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36" // Nexus 5x + }; String[] android2_tablet= { "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1" @@ -288,6 +293,10 @@ public class OperatingSystemTest { String[] android5_tablet = { "Mozilla/5.0 (Linux; Android 5.0; Nexus 9 Build/LRX21L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Safari/537.36" // Nexus 9 }; + + String[] android6_tablet = { + "Mozilla/5.0 (Linux; Android 6.0; Nexus 9 Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Safari/537.36" // Nexus 9 + }; String[] androidMobile = { "Mozilla/5.0 (Android; Mobile; rv:23.0) Gecko/23.0 Firefox/23.0" // no OS version information in UA-string @@ -447,12 +456,14 @@ public void testParseUserAgentString() { testAgents(android1g, OperatingSystem.ANDROID1); testAgents(android2g, OperatingSystem.ANDROID2); testAgents(android4g, OperatingSystem.ANDROID4); - testAgents(android5g, OperatingSystem.ANDROID5); + testAgents(android5g, OperatingSystem.ANDROID5); + testAgents(android6g, OperatingSystem.ANDROID6); testAgents(android2_tablet, OperatingSystem.ANDROID2_TABLET); testAgents(android3_tablet, OperatingSystem.ANDROID3_TABLET); testAgents(android4_tablet, OperatingSystem.ANDROID4_TABLET); testAgents(android4_wearable, OperatingSystem.ANDROID4_WEARABLE); testAgents(android5_tablet, OperatingSystem.ANDROID5_TABLET); + testAgents(android6_tablet, OperatingSystem.ANDROID6_TABLET); testAgents(androidMobile, OperatingSystem.ANDROID_MOBILE); testAgents(androidTablet, OperatingSystem.ANDROID_TABLET); testAgents(chromeOS, OperatingSystem.CHROME_OS); diff --git a/src/test/java/eu/bitwalker/useragentutils/browser/BotParameterizedTest.java b/src/test/java/eu/bitwalker/useragentutils/browser/BotParameterizedTest.java index ef6861ac..25e55c41 100644 --- a/src/test/java/eu/bitwalker/useragentutils/browser/BotParameterizedTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/browser/BotParameterizedTest.java @@ -76,6 +76,8 @@ public static Collection testData() { Browser.BOT, null, OperatingSystem.UNKNOWN }, { "Phantom.js bot", Browser.BOT, null, OperatingSystem.UNKNOWN }, + { "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.0.1-development Safari/538.1", + Browser.BOT, null, OperatingSystem.UNKNOWN } }); } -} \ No newline at end of file +} diff --git a/src/test/java/eu/bitwalker/useragentutils/browser/ChromeParameterizedTest.java b/src/test/java/eu/bitwalker/useragentutils/browser/ChromeParameterizedTest.java index 05fd4579..aaa0337f 100644 --- a/src/test/java/eu/bitwalker/useragentutils/browser/ChromeParameterizedTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/browser/ChromeParameterizedTest.java @@ -21,57 +21,49 @@ public ChromeParameterizedTest(String userAgentValue, @Parameters public static Collection testData() { return asList(new Object[][] { - // chrome { "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.310.0 Safari/532.9", Browser.CHROME, "5.0.310.0", OperatingSystem.WINDOWS_XP }, { "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.309.0 Safari/532.9", Browser.CHROME, "5.0.309.0", OperatingSystem.LINUX }, - // chrome8 { "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.558.0 Safari/534.10", Browser.CHROME8, "8.0.558.0", OperatingSystem.WINDOWS_XP }, { "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML, like Gecko) Ubuntu/10.10 Chrome/8.1.0.0 Safari/540.0", Browser.CHROME8, "8.1.0.0", OperatingSystem.UBUNTU }, - // chrome9 - { "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/540.0 (KHTML,like Gecko) Chrome/9.1.0.0 Safari/540.0", Browser.CHROME9, "9.1.0.0", OperatingSystem.LINUX }, { "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14", Browser.CHROME9, "9.0.600.0", OperatingSystem.WINDOWS_XP }, - // chrome10 { "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.613.0 Chrome/10.0.613.0 Safari/534.15", Browser.CHROME10, "10.0.613.0", OperatingSystem.UBUNTU }, - // chrome11 { "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.697.0 Safari/534.24", Browser.CHROME11, "11.0.697.0", OperatingSystem.WINDOWS_7 }, - // chrome12 { "Mozilla/5.0 (X11; CrOS i686 12.0.742.91) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.93 Safari/534.30", Browser.CHROME12, "12.0.742.93", OperatingSystem.CHROME_OS }, - // chrome13 { "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1", Browser.CHROME13, "13.0.782.41", OperatingSystem.MAC_OS_X }, - // chrome14 { "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.815.0 Safari/535.1", Browser.CHROME14, "14.0.815.0", OperatingSystem.WINDOWS_XP }, - // chrome29 { "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36", Browser.CHROME29, "29.0.1547.65", OperatingSystem.MAC_OS_X }, { "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36", - Browser.CHROME43, "43.0.2357.124", OperatingSystem.MAC_OS_X - } - + Browser.CHROME43, "43.0.2357.124", OperatingSystem.MAC_OS_X }, + { + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36", + Browser.CHROME47, "47.0.2526.73", OperatingSystem.MAC_OS_X + } }); } } diff --git a/src/test/java/eu/bitwalker/useragentutils/browser/FirefoxParameterizedTest.java b/src/test/java/eu/bitwalker/useragentutils/browser/FirefoxParameterizedTest.java index 6c3ae531..1a1fd726 100644 --- a/src/test/java/eu/bitwalker/useragentutils/browser/FirefoxParameterizedTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/browser/FirefoxParameterizedTest.java @@ -56,6 +56,9 @@ public static Collection testData() { { "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0", Browser.FIREFOX25, "25.0", OperatingSystem.MAC_OS_X }, + { + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0) Gecko/20100101 Firefox/43.0", + Browser.FIREFOX43, "43.0", OperatingSystem.MAC_OS_X }, // firefox3mobile { "Mozilla/5.0 (X11; U; Linux armv7l; en-US; rv:1.9.2a1pre) Gecko/20091127 Firefox/3.5 Maemo Browser 1.5.6 RX-51 N900",