From 0201dde33fa71443587e813fee6d555f48e56be1 Mon Sep 17 00:00:00 2001 From: Harald Walker Date: Sat, 3 Oct 2015 18:15:55 +0200 Subject: [PATCH 01/22] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 46eda70f..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-SNAPSHOT + 1.19-SNAPSHOT Utility classes to handle user-agents. github From 0a822dd0f8aa133ac54ed64ec571acf18a69da02 Mon Sep 17 00:00:00 2001 From: Harald Walker Date: Sat, 3 Oct 2015 18:16:32 +0200 Subject: [PATCH 02/22] Update README.md --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f0f5dbbb..1e82d7e0 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,9 @@ 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 (unreleased) +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 +TBA Javadoc ------- @@ -84,6 +80,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 From 5c7d3dcecef9cb11d7c36a7ebc6cd45490db2ae2 Mon Sep 17 00:00:00 2001 From: Harald Walker Date: Sat, 3 Oct 2015 18:17:03 +0200 Subject: [PATCH 03/22] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1e82d7e0..3349a24f 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Add dependency: eu.bitwalker UserAgentUtils - 1.17 + 1.18 ``` @@ -42,7 +42,7 @@ Add dependency for snapshot releases: eu.bitwalker UserAgentUtils - 1.18-SNAPSHOT + 1.19-SNAPSHOT ``` From dd6a307d5a8cd3ae9dab0aad2579c2dfcbb5e454 Mon Sep 17 00:00:00 2001 From: Alexis THOMAS Date: Fri, 23 Oct 2015 12:25:46 +0200 Subject: [PATCH 04/22] Typo in @Deprecated comment --- src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java index a9626004..1df2ca62 100644 --- a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java +++ b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java @@ -261,7 +261,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() { From 45f4f3f64caa7080efd48f8c28acd9d0bde1b4c5 Mon Sep 17 00:00:00 2001 From: David Eberlein Date: Thu, 19 Nov 2015 10:50:05 +0100 Subject: [PATCH 05/22] added support for android-6 mobile and tablet --- .../java/eu/bitwalker/useragentutils/OperatingSystem.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java index 1df2ca62..5516fd55 100644 --- a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java +++ b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java @@ -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.ANDROID5, 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 ), From 5a842a027e27779364045cb65d45354241d9a95d Mon Sep 17 00:00:00 2001 From: David Eberlein Date: Thu, 19 Nov 2015 10:57:52 +0100 Subject: [PATCH 06/22] added tests for android-6 mobile and tablet --- .../useragentutils/OperatingSystemTest.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java index 2554061d..703ddb60 100644 --- a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java @@ -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) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36", // Nexus 5 + "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); From f392aff1d4701c44d5507ef4d27e61ecd4fbce26 Mon Sep 17 00:00:00 2001 From: David Eberlein Date: Thu, 19 Nov 2015 11:06:53 +0100 Subject: [PATCH 07/22] Replaced android 6 Nexus 5 test with WebView user-agent --- .../java/eu/bitwalker/useragentutils/OperatingSystemTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java index 703ddb60..3514dbe3 100644 --- a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java @@ -260,7 +260,7 @@ public class OperatingSystemTest { }; String[] android6g = { - "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36", // Nexus 5 + "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 }; From aaf392eb4c3ccb68bd870883f8f4ec540d1252a8 Mon Sep 17 00:00:00 2001 From: David Eberlein Date: Thu, 19 Nov 2015 12:34:02 +0100 Subject: [PATCH 08/22] Bugfix:ANDROID6_TABLET now uses the right group --- src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java index 5516fd55..0c865c7d 100644 --- a/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java +++ b/src/main/java/eu/bitwalker/useragentutils/OperatingSystem.java @@ -69,7 +69,7 @@ public enum OperatingSystem { ANDROID( Manufacturer.GOOGLE,null, 0, "Android", new String[] { "Android" }, new String[] {"Ubuntu"}, DeviceType.MOBILE, 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.ANDROID5, 60, "Android 6.x Tablet", new String[] { "Android 6", "Android-6"}, new String[] { "mobile", "glass"}, DeviceType.TABLET, 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 ), From 6612570b3d62b6d1a3df3373f210a7af0ec97dbe Mon Sep 17 00:00:00 2001 From: David Eberlein Date: Thu, 19 Nov 2015 15:27:38 +0100 Subject: [PATCH 09/22] Fixed PhantomJS being detected as Safari PhantomJS default user agent was falsely detected as Safari / AppleWebKit UA-String: Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.0.1-development Safari/538.1 --- src/main/java/eu/bitwalker/useragentutils/Browser.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index 76575a71..e16b3965 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -148,7 +148,7 @@ 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 + SAFARI( Manufacturer.APPLE, null, 1, "Safari", new String[] { "Safari" }, new String[] { "bot", "preview", "OPR/", "Coast/", "Vivaldi","CFNetwork", "PhantomJS" }, 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 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 @@ -197,7 +197,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", "PhantomJS" }, 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 @@ -273,7 +273,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.js", "PhantomJS"}, 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 From bae8688818f024324208c42dcb8b6932df382ecf Mon Sep 17 00:00:00 2001 From: David Eberlein Date: Thu, 19 Nov 2015 15:32:04 +0100 Subject: [PATCH 10/22] test for phantomjs detection --- .../useragentutils/browser/BotParameterizedTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 +} From d952b7fa5f0ac69ca7586ba75087f462bef54a70 Mon Sep 17 00:00:00 2001 From: David Eberlein Date: Fri, 20 Nov 2015 08:37:58 +0100 Subject: [PATCH 11/22] optimised phantom js detection --- src/main/java/eu/bitwalker/useragentutils/Browser.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index e16b3965..3b54ef96 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -148,7 +148,7 @@ 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", "PhantomJS" }, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, "Version\\/(([0-9]+)\\.?([\\w]+)?(\\.[\\w]+)?)" ), // before AppleWebKit + 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 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 @@ -197,7 +197,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", "PhantomJS" }, 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 @@ -273,7 +273,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", "PhantomJS"}, 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 From 4014e98b7d31ddf58933a10519113fa12552b93b Mon Sep 17 00:00:00 2001 From: Simon Lieschke Date: Fri, 27 Nov 2015 19:58:34 +1300 Subject: [PATCH 12/22] Add support for Microsoft Edge 13 https://blogs.windows.com/msedgedev/2015/09/21/understanding-versions-in-an-evergreen-browser/ --- src/main/java/eu/bitwalker/useragentutils/Browser.java | 7 ++++--- .../java/eu/bitwalker/useragentutils/BrowserTest.java | 9 +++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index 3b54ef96..c4acb29a 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -97,9 +97,10 @@ 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]*)))"), + EDGE12(Manufacturer.MICROSOFT, Browser.EDGE, 301, "Microsoft Edge", new String[] {"Edge/12"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), + EDGE13(Manufacturer.MICROSOFT, Browser.EDGE, 303, "Microsoft Edge", new String[] {"Edge/13"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), + EDGE_MOBILE12(Manufacturer.MICROSOFT, Browser.EDGE, 302, "Microsoft Edge Mobile", new String[] {"Mobile Safari", "Edge/12"}, null, BrowserType.MOBILE_BROWSER, RenderingEngine.EDGE_HTML, null ), /** * Google Chrome browser diff --git a/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java b/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java index 78ce0a46..ccbea41a 100644 --- a/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java @@ -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" @@ -612,7 +616,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); From 48a1eafd9257cf66e202f13383e813f66f0207ca Mon Sep 17 00:00:00 2001 From: Simon Lieschke Date: Fri, 27 Nov 2015 20:17:04 +1300 Subject: [PATCH 13/22] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3349a24f..a042c7fe 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you want faster updates, switch to snapshot releases. New in Version 1.19 (unreleased) ------------------- -TBA +- #138 Improved future Microsoft Edge detection; added latest version Javadoc ------- From 5c4842b5760f31a2cc0a8b196e0dac2f62af0d58 Mon Sep 17 00:00:00 2001 From: Simon Lieschke Date: Mon, 30 Nov 2015 12:01:41 +1300 Subject: [PATCH 14/22] Add generic support for Microsoft Edge mobile browsers --- src/main/java/eu/bitwalker/useragentutils/Browser.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index c4acb29a..31f86f78 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -100,7 +100,8 @@ public enum Browser { EDGE(Manufacturer.MICROSOFT, null, 300, "Microsoft Edge", new String[] {"Edge"}, null, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, "(?:Edge\\/(([0-9]+)\\.([0-9]*)))"), EDGE12(Manufacturer.MICROSOFT, Browser.EDGE, 301, "Microsoft Edge", new String[] {"Edge/12"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), EDGE13(Manufacturer.MICROSOFT, Browser.EDGE, 303, "Microsoft Edge", new String[] {"Edge/13"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), - EDGE_MOBILE12(Manufacturer.MICROSOFT, Browser.EDGE, 302, "Microsoft Edge Mobile", new String[] {"Mobile Safari", "Edge/12"}, null, BrowserType.MOBILE_BROWSER, RenderingEngine.EDGE_HTML, null ), + 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 ), /** * Google Chrome browser From ec3f8201f52f92c0772303e2827b15c247be8535 Mon Sep 17 00:00:00 2001 From: Simon Lieschke Date: Mon, 30 Nov 2015 12:02:56 +1300 Subject: [PATCH 15/22] Add version numbers to enum instance descriptions for specific Microsoft Edge browsers --- src/main/java/eu/bitwalker/useragentutils/Browser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index 31f86f78..b292905a 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -98,8 +98,8 @@ 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\\/(([0-9]+)\\.([0-9]*)))"), - EDGE12(Manufacturer.MICROSOFT, Browser.EDGE, 301, "Microsoft Edge", new String[] {"Edge/12"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), - EDGE13(Manufacturer.MICROSOFT, Browser.EDGE, 303, "Microsoft Edge", 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 ), + EDGE13(Manufacturer.MICROSOFT, Browser.EDGE, 303, "Microsoft Edge 13", new String[] {"Edge/13"}, new String[] {"Mobile"}, BrowserType.WEB_BROWSER, RenderingEngine.EDGE_HTML, null ), 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 ), From 18780ba157355fc54414d046b2773eaf325a6ff1 Mon Sep 17 00:00:00 2001 From: Simon Lieschke Date: Mon, 30 Nov 2015 12:05:18 +1300 Subject: [PATCH 16/22] Reorder and indent to match existing code --- src/main/java/eu/bitwalker/useragentutils/Browser.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index b292905a..606e7468 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -97,11 +97,11 @@ 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\\/(([0-9]+)\\.([0-9]*)))"), - EDGE12(Manufacturer.MICROSOFT, Browser.EDGE, 301, "Microsoft Edge 12", new String[] {"Edge/12"}, new String[] {"Mobile"}, BrowserType.WEB_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 ), - EDGE_MOBILE(Manufacturer.MICROSOFT, Browser.EDGE, 304, "Microsoft Edge Mobile", new String[] {"Mobile Safari"}, null, BrowserType.MOBILE_BROWSER, RenderingEngine.EDGE_HTML, null ), + 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 From e50a01374a4ae512cd39f7da7a6541ce92a8d035 Mon Sep 17 00:00:00 2001 From: Simon Lieschke Date: Wed, 2 Dec 2015 18:38:54 +1300 Subject: [PATCH 17/22] Fix broken source file --- .../java/eu/bitwalker/useragentutils/OperatingSystemTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java index 3514dbe3..c1e595dc 100644 --- a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java @@ -260,7 +260,7 @@ public class OperatingSystemTest { }; 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 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 }; From 0a52773a3bbfee629011899d597fb1949e8e0e0a Mon Sep 17 00:00:00 2001 From: Simon Lieschke Date: Wed, 2 Dec 2015 18:39:05 +1300 Subject: [PATCH 18/22] Remove unused import --- src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java b/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java index 1d1ccacd..e363b044 100644 --- a/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java @@ -44,8 +44,6 @@ import org.junit.Test; -import eu.bitwalker.useragentutils.Application; - /** * Test class for application detection. * @author harald From b3d2ea30ea8747b73753e0cebdeb3752f4ff48f2 Mon Sep 17 00:00:00 2001 From: Harald Walker Date: Thu, 7 Jan 2016 21:39:29 +0100 Subject: [PATCH 19/22] Add latest and upcoming firefox and chrome versions --- .../eu/bitwalker/useragentutils/Browser.java | 107 ++++++++++-------- .../bitwalker/useragentutils/BrowserTest.java | 11 +- .../browser/ChromeParameterizedTest.java | 18 +-- .../browser/FirefoxParameterizedTest.java | 3 + 4 files changed, 75 insertions(+), 64 deletions(-) diff --git a/src/main/java/eu/bitwalker/useragentutils/Browser.java b/src/main/java/eu/bitwalker/useragentutils/Browser.java index 606e7468..6a266ecb 100644 --- a/src/main/java/eu/bitwalker/useragentutils/Browser.java +++ b/src/main/java/eu/bitwalker/useragentutils/Browser.java @@ -108,6 +108,9 @@ public enum 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 @@ -150,9 +153,64 @@ public enum Browser { OMNIWEB( Manufacturer.OTHER, null, 2, "Omniweb", new String[] { "OmniWeb" }, null, BrowserType.WEB_BROWSER, RenderingEngine.WEBKIT, null), // + 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 @@ -211,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. */ diff --git a/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java b/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java index ccbea41a..724cb927 100644 --- a/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java +++ b/src/test/java/eu/bitwalker/useragentutils/BrowserTest.java @@ -301,13 +301,17 @@ 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[] 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" @@ -659,6 +663,7 @@ 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(safari, Browser.SAFARI); testAgents(dolfin, Browser.DOLFIN2); @@ -709,7 +714,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/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", From bd9c33395f003fb43e1f5539b3083a9647c4a89a Mon Sep 17 00:00:00 2001 From: Harald Walker Date: Thu, 7 Jan 2016 21:51:54 +0100 Subject: [PATCH 20/22] Update copyright date and add small fix to avoid incorrect results for new Firefox versions --- .../eu/bitwalker/useragentutils/Application.java | 2 +- .../eu/bitwalker/useragentutils/ApplicationType.java | 2 +- .../java/eu/bitwalker/useragentutils/Browser.java | 12 ++++++------ .../eu/bitwalker/useragentutils/BrowserType.java | 2 +- .../java/eu/bitwalker/useragentutils/DeviceType.java | 2 +- .../eu/bitwalker/useragentutils/Manufacturer.java | 2 +- .../eu/bitwalker/useragentutils/OperatingSystem.java | 2 +- .../eu/bitwalker/useragentutils/RenderingEngine.java | 2 +- .../java/eu/bitwalker/useragentutils/UserAgent.java | 2 +- .../java/eu/bitwalker/useragentutils/Version.java | 2 +- .../eu/bitwalker/useragentutils/ApplicationTest.java | 2 +- .../eu/bitwalker/useragentutils/BrowserTest.java | 9 +++++++-- .../bitwalker/useragentutils/ManufacturerTest.java | 2 +- .../useragentutils/OperatingSystemTest.java | 2 +- 14 files changed, 25 insertions(+), 20 deletions(-) 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 6a266ecb..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 @@ -200,11 +200,11 @@ public enum Browser { 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 + 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 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 0c865c7d..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 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 724cb927..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 @@ -279,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" }; @@ -311,6 +311,10 @@ public class BrowserTest { 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", @@ -665,6 +669,7 @@ public void testParseUserAgentString() { 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); diff --git a/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java b/src/test/java/eu/bitwalker/useragentutils/ManufacturerTest.java index e363b044..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 diff --git a/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java b/src/test/java/eu/bitwalker/useragentutils/OperatingSystemTest.java index c1e595dc..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 From 1c6b53a2559bae6bd8dfaf1d43a6e32520dd303b Mon Sep 17 00:00:00 2001 From: Harald Walker Date: Thu, 7 Jan 2016 21:59:47 +0100 Subject: [PATCH 21/22] Update readme --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a042c7fe..a6a8c893 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,12 @@ If you want faster updates, switch to snapshot releases. New in Version 1.19 (unreleased) ------------------- -- #138 Improved future Microsoft Edge detection; added latest version +- #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 ------- From f2ac9fb5bc1881eb578aa1548a17190fdec975ff Mon Sep 17 00:00:00 2001 From: Harald Walker Date: Thu, 7 Jan 2016 22:04:01 +0100 Subject: [PATCH 22/22] Update javadoc --- javadoc/allclasses-frame.html | 6 +- javadoc/allclasses-noframe.html | 6 +- javadoc/constant-values.html | 10 +- javadoc/deprecated-list.html | 10 +- .../bitwalker/useragentutils/Application.html | 10 +- .../useragentutils/ApplicationType.html | 10 +- .../eu/bitwalker/useragentutils/Browser.html | 863 ++++++++++-------- .../bitwalker/useragentutils/BrowserType.html | 10 +- .../bitwalker/useragentutils/DeviceType.html | 10 +- .../useragentutils/Manufacturer.html | 10 +- .../useragentutils/OperatingSystem.html | 34 +- .../useragentutils/RenderingEngine.html | 10 +- .../bitwalker/useragentutils/UserAgent.html | 10 +- .../eu/bitwalker/useragentutils/Utils.html | 10 +- .../eu/bitwalker/useragentutils/Version.html | 10 +- .../useragentutils/class-use/Application.html | 10 +- .../class-use/ApplicationType.html | 10 +- .../useragentutils/class-use/Browser.html | 10 +- .../useragentutils/class-use/BrowserType.html | 10 +- .../useragentutils/class-use/DeviceType.html | 10 +- .../class-use/Manufacturer.html | 10 +- .../class-use/OperatingSystem.html | 10 +- .../class-use/RenderingEngine.html | 10 +- .../useragentutils/class-use/UserAgent.html | 10 +- .../useragentutils/class-use/Utils.html | 10 +- .../useragentutils/class-use/Version.html | 10 +- .../useragentutils/package-frame.html | 6 +- .../useragentutils/package-summary.html | 10 +- .../useragentutils/package-tree.html | 10 +- .../bitwalker/useragentutils/package-use.html | 10 +- javadoc/help-doc.html | 10 +- javadoc/index-all.html | 10 +- javadoc/index.html | 4 +- javadoc/overview-tree.html | 10 +- javadoc/serialized-form.html | 10 +- 35 files changed, 672 insertions(+), 537 deletions(-) diff --git a/javadoc/allclasses-frame.html b/javadoc/allclasses-frame.html index 5c2218c3..825ac654 100644 --- a/javadoc/allclasses-frame.html +++ b/javadoc/allclasses-frame.html @@ -2,10 +2,10 @@ - + -All Classes (User-Agent-Utils 1.18-SNAPSHOT API) - +All Classes (User-Agent-Utils 1.19-SNAPSHOT API) + diff --git a/javadoc/allclasses-noframe.html b/javadoc/allclasses-noframe.html index 11543918..a7aaad39 100644 --- a/javadoc/allclasses-noframe.html +++ b/javadoc/allclasses-noframe.html @@ -2,10 +2,10 @@ - + -All Classes (User-Agent-Utils 1.18-SNAPSHOT API) - +All Classes (User-Agent-Utils 1.19-SNAPSHOT API) + diff --git a/javadoc/constant-values.html b/javadoc/constant-values.html index af836911..12798015 100644 --- a/javadoc/constant-values.html +++ b/javadoc/constant-values.html @@ -2,16 +2,16 @@ - + -Constant Field Values (User-Agent-Utils 1.18-SNAPSHOT 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 1c9d9894..82920caf 100644 --- a/javadoc/deprecated-list.html +++ b/javadoc/deprecated-list.html @@ -2,16 +2,16 @@ - + -Deprecated List (User-Agent-Utils 1.18-SNAPSHOT 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 68b29750..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-SNAPSHOT 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 3d1df698..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-SNAPSHOT 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 8719c66a..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-SNAPSHOT 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.
- +
  • -

    EDGE12

    -
    public static final Browser EDGE12
    +

    EDGE_MOBILE

    +
    public static final Browser EDGE_MOBILE
@@ -1026,6 +1055,24 @@

EDGE_MOBILE12

public static final Browser EDGE_MOBILE12
+ + + +
    +
  • +

    EDGE13

    +
    public static final Browser EDGE13
    +
  • +
+ + + +
    +
  • +

    EDGE12

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

CHROME_MOBILE

public static final Browser CHROME_MOBILE
+ + + +
    +
  • +

    CHROME49

    +
    public static final Browser CHROME49
    +
  • +
+ + + +
    +
  • +

    CHROME48

    +
    public static final Browser CHROME48
    +
  • +
+ + + +
    +
  • +

    CHROME47

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

OMNIWEB

public static final Browser OMNIWEB
- +
  • -

    SAFARI

    -
    public static final Browser SAFARI
    +

    FIREFOX

    +
    public static final Browser FIREFOX
- +
  • -

    BLACKBERRY10

    -
    public static final Browser BLACKBERRY10
    +

    FIREFOX3MOBILE

    +
    public static final Browser FIREFOX3MOBILE
- +
  • -

    MOBILE_SAFARI

    -
    public static final Browser MOBILE_SAFARI
    +

    FIREFOX_MOBILE

    +
    public static final Browser FIREFOX_MOBILE
- +
  • -

    SILK

    -
    public static final Browser SILK
    +

    FIREFOX_MOBILE23

    +
    public static final Browser FIREFOX_MOBILE23
- +
  • -

    SAFARI9

    -
    public static final Browser SAFARI9
    +

    FIREFOX_MOBILE_IOS

    +
    public static final Browser FIREFOX_MOBILE_IOS
    +
    Firefox for iOS devices. This Firefox version is using webkit instead of gecko rendering engine.
- +
  • -

    SAFARI8

    -
    public static final Browser SAFARI8
    +

    FIREFOX45

    +
    public static final Browser FIREFOX45
- +
  • -

    SAFARI7

    -
    public static final Browser SAFARI7
    +

    FIREFOX44

    +
    public static final Browser FIREFOX44
- +
  • -

    SAFARI6

    -
    public static final Browser SAFARI6
    +

    FIREFOX43

    +
    public static final Browser FIREFOX43
- +
  • -

    SAFARI5

    -
    public static final Browser SAFARI5
    +

    FIREFOX42

    +
    public static final Browser FIREFOX42
- +
  • -

    SAFARI4

    -
    public static final Browser SAFARI4
    +

    FIREFOX41

    +
    public static final Browser FIREFOX41
- +
  • -

    COAST

    -
    public static final Browser COAST
    -
    Opera Coast mobile browser, http://en.wikipedia.org/wiki/Opera_Coast
    +

    FIREFOX40

    +
    public static final Browser FIREFOX40
- +
  • -

    COAST1

    -
    public static final Browser COAST1
    +

    FIREFOX39

    +
    public static final Browser FIREFOX39
- +
  • -

    OPERA

    -
    public static final Browser OPERA
    +

    FIREFOX38

    +
    public static final Browser FIREFOX38
- +
  • -

    OPERA_MOBILE

    -
    public static final Browser OPERA_MOBILE
    +

    FIREFOX37

    +
    public static final Browser FIREFOX37
- +
  • -

    OPERA_MINI

    -
    public static final Browser OPERA_MINI
    +

    FIREFOX36

    +
    public static final Browser FIREFOX36
- +
  • -

    OPERA34

    -
    public static final Browser OPERA34
    +

    FIREFOX35

    +
    public static final Browser FIREFOX35
- +
  • -

    OPERA33

    -
    public static final Browser OPERA33
    +

    FIREFOX34

    +
    public static final Browser FIREFOX34
- +
  • -

    OPERA32

    -
    public static final Browser OPERA32
    +

    FIREFOX33

    +
    public static final Browser FIREFOX33
- +
  • -

    OPERA31

    -
    public static final Browser OPERA31
    +

    FIREFOX32

    +
    public static final Browser FIREFOX32
- +
  • -

    OPERA30

    -
    public static final Browser OPERA30
    +

    FIREFOX31

    +
    public static final Browser FIREFOX31
- +
  • -

    OPERA29

    -
    public static final Browser OPERA29
    +

    FIREFOX30

    +
    public static final Browser FIREFOX30
- +
  • -

    OPERA28

    -
    public static final Browser OPERA28
    +

    FIREFOX29

    +
    public static final Browser FIREFOX29
- +
  • -

    OPERA27

    -
    public static final Browser OPERA27
    +

    FIREFOX28

    +
    public static final Browser FIREFOX28
- +
  • -

    OPERA26

    -
    public static final Browser OPERA26
    +

    FIREFOX27

    +
    public static final Browser FIREFOX27
- +
  • -

    OPERA25

    -
    public static final Browser OPERA25
    +

    FIREFOX26

    +
    public static final Browser FIREFOX26
- +
  • -

    OPERA24

    -
    public static final Browser OPERA24
    +

    FIREFOX25

    +
    public static final Browser FIREFOX25
- +
  • -

    OPERA23

    -
    public static final Browser OPERA23
    +

    FIREFOX24

    +
    public static final Browser FIREFOX24
- +
  • -

    OPERA20

    -
    public static final Browser OPERA20
    +

    FIREFOX23

    +
    public static final Browser FIREFOX23
- +
  • -

    OPERA19

    -
    public static final Browser OPERA19
    +

    FIREFOX22

    +
    public static final Browser FIREFOX22
- +
  • -

    OPERA18

    -
    public static final Browser OPERA18
    +

    FIREFOX21

    +
    public static final Browser FIREFOX21
- +
  • -

    OPERA17

    -
    public static final Browser OPERA17
    +

    FIREFOX20

    +
    public static final Browser FIREFOX20
- +
  • -

    OPERA16

    -
    public static final Browser OPERA16
    +

    FIREFOX19

    +
    public static final Browser FIREFOX19
- +
  • -

    OPERA15

    -
    public static final Browser OPERA15
    +

    FIREFOX18

    +
    public static final Browser FIREFOX18
- +
  • -

    OPERA12

    -
    public static final Browser OPERA12
    +

    FIREFOX17

    +
    public static final Browser FIREFOX17
- +
  • -

    OPERA11

    -
    public static final Browser OPERA11
    +

    FIREFOX16

    +
    public static final Browser FIREFOX16
- +
  • -

    OPERA10

    -
    public static final Browser OPERA10
    +

    FIREFOX15

    +
    public static final Browser FIREFOX15
- +
  • -

    OPERA9

    -
    public static final Browser OPERA9
    +

    FIREFOX14

    +
    public static final Browser FIREFOX14
- +
  • -

    KONQUEROR

    -
    public static final Browser KONQUEROR
    +

    FIREFOX13

    +
    public static final Browser FIREFOX13
- +
  • -

    DOLFIN2

    -
    public static final Browser DOLFIN2
    +

    FIREFOX12

    +
    public static final Browser FIREFOX12
- +
  • -

    APPLE_WEB_KIT

    -
    public static final Browser APPLE_WEB_KIT
    +

    FIREFOX11

    +
    public static final Browser FIREFOX11
- +
  • -

    APPLE_ITUNES

    -
    public static final Browser APPLE_ITUNES
    +

    FIREFOX10

    +
    public static final Browser FIREFOX10
- +
  • -

    APPLE_APPSTORE

    -
    public static final Browser APPLE_APPSTORE
    +

    FIREFOX9

    +
    public static final Browser FIREFOX9
- +
  • -

    ADOBE_AIR

    -
    public static final Browser ADOBE_AIR
    +

    FIREFOX8

    +
    public static final Browser FIREFOX8
- +
  • -

    LOTUS_NOTES

    -
    public static final Browser LOTUS_NOTES
    +

    FIREFOX7

    +
    public static final Browser FIREFOX7
- +
  • -

    CAMINO

    -
    public static final Browser CAMINO
    +

    FIREFOX6

    +
    public static final Browser FIREFOX6
- +
  • -

    CAMINO2

    -
    public static final Browser CAMINO2
    +

    FIREFOX5

    +
    public static final Browser FIREFOX5
- +
  • -

    FLOCK

    -
    public static final Browser FLOCK
    +

    FIREFOX4

    +
    public static final Browser FIREFOX4
- +
  • -

    FIREFOX

    -
    public static final Browser FIREFOX
    +

    FIREFOX3

    +
    public static final Browser FIREFOX3
- +
  • -

    FIREFOX3MOBILE

    -
    public static final Browser FIREFOX3MOBILE
    +

    FIREFOX2

    +
    public static final Browser FIREFOX2
- +
  • -

    FIREFOX_MOBILE

    -
    public static final Browser FIREFOX_MOBILE
    +

    FIREFOX1_5

    +
    public static final Browser FIREFOX1_5
- +
  • -

    FIREFOX_MOBILE23

    -
    public static final Browser FIREFOX_MOBILE23
    +

    SAFARI

    +
    public static final Browser SAFARI
- +
  • -

    FIREFOX42

    -
    public static final Browser FIREFOX42
    +

    BLACKBERRY10

    +
    public static final Browser BLACKBERRY10
- +
  • -

    FIREFOX41

    -
    public static final Browser FIREFOX41
    +

    MOBILE_SAFARI

    +
    public static final Browser MOBILE_SAFARI
- +
  • -

    FIREFOX40

    -
    public static final Browser FIREFOX40
    +

    SILK

    +
    public static final Browser SILK
- +
  • -

    FIREFOX39

    -
    public static final Browser FIREFOX39
    +

    SAFARI9

    +
    public static final Browser SAFARI9
- +
  • -

    FIREFOX38

    -
    public static final Browser FIREFOX38
    +

    SAFARI8

    +
    public static final Browser SAFARI8
- +
  • -

    FIREFOX37

    -
    public static final Browser FIREFOX37
    +

    SAFARI7

    +
    public static final Browser SAFARI7
- +
  • -

    FIREFOX36

    -
    public static final Browser FIREFOX36
    +

    SAFARI6

    +
    public static final Browser SAFARI6
- +
  • -

    FIREFOX35

    -
    public static final Browser FIREFOX35
    +

    SAFARI5

    +
    public static final Browser SAFARI5
- +
  • -

    FIREFOX34

    -
    public static final Browser FIREFOX34
    +

    SAFARI4

    +
    public static final Browser SAFARI4
- +
  • -

    FIREFOX33

    -
    public static final Browser FIREFOX33
    +

    COAST

    +
    public static final Browser COAST
    +
    Opera Coast mobile browser, http://en.wikipedia.org/wiki/Opera_Coast
- +
  • -

    FIREFOX32

    -
    public static final Browser FIREFOX32
    +

    COAST1

    +
    public static final Browser COAST1
- +
  • -

    FIREFOX31

    -
    public static final Browser FIREFOX31
    +

    OPERA

    +
    public static final Browser OPERA
- +
  • -

    FIREFOX30

    -
    public static final Browser FIREFOX30
    +

    OPERA_MOBILE

    +
    public static final Browser OPERA_MOBILE
- +
  • -

    FIREFOX29

    -
    public static final Browser FIREFOX29
    +

    OPERA_MINI

    +
    public static final Browser OPERA_MINI
- +
  • -

    FIREFOX28

    -
    public static final Browser FIREFOX28
    +

    OPERA34

    +
    public static final Browser OPERA34
- +
  • -

    FIREFOX27

    -
    public static final Browser FIREFOX27
    +

    OPERA33

    +
    public static final Browser OPERA33
- +
  • -

    FIREFOX26

    -
    public static final Browser FIREFOX26
    +

    OPERA32

    +
    public static final Browser OPERA32
- +
  • -

    FIREFOX25

    -
    public static final Browser FIREFOX25
    +

    OPERA31

    +
    public static final Browser OPERA31
- +
  • -

    FIREFOX24

    -
    public static final Browser FIREFOX24
    +

    OPERA30

    +
    public static final Browser OPERA30
- +
  • -

    FIREFOX23

    -
    public static final Browser FIREFOX23
    +

    OPERA29

    +
    public static final Browser OPERA29
- +
  • -

    FIREFOX22

    -
    public static final Browser FIREFOX22
    +

    OPERA28

    +
    public static final Browser OPERA28
- +
  • -

    FIREFOX21

    -
    public static final Browser FIREFOX21
    +

    OPERA27

    +
    public static final Browser OPERA27
- +
  • -

    FIREFOX20

    -
    public static final Browser FIREFOX20
    +

    OPERA26

    +
    public static final Browser OPERA26
- +
  • -

    FIREFOX19

    -
    public static final Browser FIREFOX19
    +

    OPERA25

    +
    public static final Browser OPERA25
- +
  • -

    FIREFOX18

    -
    public static final Browser FIREFOX18
    +

    OPERA24

    +
    public static final Browser OPERA24
- +
  • -

    FIREFOX17

    -
    public static final Browser FIREFOX17
    +

    OPERA23

    +
    public static final Browser OPERA23
- +
  • -

    FIREFOX16

    -
    public static final Browser FIREFOX16
    +

    OPERA20

    +
    public static final Browser OPERA20
- +
  • -

    FIREFOX15

    -
    public static final Browser FIREFOX15
    +

    OPERA19

    +
    public static final Browser OPERA19
- +
  • -

    FIREFOX14

    -
    public static final Browser FIREFOX14
    +

    OPERA18

    +
    public static final Browser OPERA18
- +
  • -

    FIREFOX13

    -
    public static final Browser FIREFOX13
    +

    OPERA17

    +
    public static final Browser OPERA17
- +
  • -

    FIREFOX12

    -
    public static final Browser FIREFOX12
    +

    OPERA16

    +
    public static final Browser OPERA16
- +
  • -

    FIREFOX11

    -
    public static final Browser FIREFOX11
    +

    OPERA15

    +
    public static final Browser OPERA15
- +
  • -

    FIREFOX10

    -
    public static final Browser FIREFOX10
    +

    OPERA12

    +
    public static final Browser OPERA12
- +
  • -

    FIREFOX9

    -
    public static final Browser FIREFOX9
    +

    OPERA11

    +
    public static final Browser OPERA11
- +
  • -

    FIREFOX8

    -
    public static final Browser FIREFOX8
    +

    OPERA10

    +
    public static final Browser OPERA10
- +
  • -

    FIREFOX7

    -
    public static final Browser FIREFOX7
    +

    OPERA9

    +
    public static final Browser OPERA9
- +
  • -

    FIREFOX6

    -
    public static final Browser FIREFOX6
    +

    KONQUEROR

    +
    public static final Browser KONQUEROR
- +
  • -

    FIREFOX5

    -
    public static final Browser FIREFOX5
    +

    DOLFIN2

    +
    public static final Browser DOLFIN2
- +
  • -

    FIREFOX4

    -
    public static final Browser FIREFOX4
    +

    APPLE_WEB_KIT

    +
    public static final Browser APPLE_WEB_KIT
- +
  • -

    FIREFOX3

    -
    public static final Browser FIREFOX3
    +

    APPLE_ITUNES

    +
    public static final Browser APPLE_ITUNES
- +
  • -

    FIREFOX2

    -
    public static final Browser FIREFOX2
    +

    APPLE_APPSTORE

    +
    public static final Browser APPLE_APPSTORE
- +
  • -

    FIREFOX1_5

    -
    public static final Browser FIREFOX1_5
    +

    ADOBE_AIR

    +
    public static final Browser ADOBE_AIR
    +
  • +
+ + + +
    +
  • +

    LOTUS_NOTES

    +
    public static final Browser LOTUS_NOTES
    +
  • +
+ + + +
    +
  • +

    CAMINO

    +
    public static final Browser CAMINO
    +
  • +
+ + + +
    +
  • +

    CAMINO2

    +
    public static final Browser CAMINO2
    +
  • +
+ + + +
    +
  • +

    FLOCK

    +
    public static final Browser FLOCK
@@ -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 89a466d1..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-SNAPSHOT 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 6bfdce34..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-SNAPSHOT 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 7ee810bc..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-SNAPSHOT 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 4bd95d9a..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-SNAPSHOT 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
+ + + + + + + +
    +
  • +

    ANDROID6_TABLET

    +
    public static final OperatingSystem ANDROID6_TABLET
    +
  • +
@@ -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 a04c1abb..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-SNAPSHOT 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 2c4f9651..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-SNAPSHOT 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 48ce0ae9..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-SNAPSHOT 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 35f85266..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-SNAPSHOT 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 803af912..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-SNAPSHOT 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 7414b06e..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-SNAPSHOT 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 d24c4d6b..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-SNAPSHOT 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 0b4afcae..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-SNAPSHOT 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 1d859898..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-SNAPSHOT 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 010865a2..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-SNAPSHOT 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 bb50e9d1..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-SNAPSHOT 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 31351407..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-SNAPSHOT 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 9c3f80fb..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-SNAPSHOT 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 6b42e666..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-SNAPSHOT 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 86199d98..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-SNAPSHOT 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 c4768ca7..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-SNAPSHOT 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 979e19c0..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-SNAPSHOT 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 972d3e4b..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-SNAPSHOT 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 9f55a4c2..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-SNAPSHOT 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 6acff402..1a6b9992 100644 --- a/javadoc/help-doc.html +++ b/javadoc/help-doc.html @@ -2,16 +2,16 @@ - + -API Help (User-Agent-Utils 1.18-SNAPSHOT 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 b0b5fe93..94fb0348 100644 --- a/javadoc/index-all.html +++ b/javadoc/index-all.html @@ -2,16 +2,16 @@ - + -Index (User-Agent-Utils 1.18-SNAPSHOT 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 da8a7b52..8d22f1c9 100644 --- a/javadoc/index.html +++ b/javadoc/index.html @@ -2,9 +2,9 @@ - + -User-Agent-Utils 1.18-SNAPSHOT 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 864175fa..dc720822 100644 --- a/javadoc/serialized-form.html +++ b/javadoc/serialized-form.html @@ -2,16 +2,16 @@ - + -Serialized Form (User-Agent-Utils 1.18-SNAPSHOT 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.