[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16637872#comment-16637872 ] ASF subversion and git services commented on WICKET-6544: - Commit efc8ceb42ef47c91e15cbc9b24d7a1253aeade9b in wicket's branch refs/heads/wicket-8.x from Martin Tzvetanov Grigorov [ https://git-wip-us.apache.org/repos/asf?p=wicket.git;h=efc8ceb ] WICKET-6544 Add deprecation message to DynamicJQueryResourceReference > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Sven Meier >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16546420#comment-16546420 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/275 Hey @solomax - sadly I am totally busy right now, but I try my best to change this. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Sven Meier >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16545234#comment-16545234 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on the issue: https://github.com/apache/wicket/pull/275 @klopfdreh can you create wicketstuff module? > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Sven Meier >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16524596#comment-16524596 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh closed the pull request at: https://github.com/apache/wicket/pull/275 > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Sven Meier >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16524595#comment-16524595 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/275 Due to the vote that Wicket is going to drop the support of Browser detection I am closing this branch right now. @solomax - yes why not a wicketstuff module. 👍 /closed > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Sven Meier >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16522525#comment-16522525 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on the issue: https://github.com/apache/wicket/pull/275 I believe we can add browser detection as wicketstuff module and/or as confluence example Should be easy and useful > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Sven Meier >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16522492#comment-16522492 ] ASF GitHub Bot commented on WICKET-6544: Github user svenmeier commented on the issue: https://github.com/apache/wicket/pull/275 Hi Niels, thanks for chiming in, but just today we decided to drop all code related to user agent detection, as Wicket itself doesn't need/utilizes it. Actually your remarks affirm my position that user agent detection is hard business and Wicket shouldn't hide the details and configuration behind our very broad API. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Sven Meier >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16522274#comment-16522274 ] ASF GitHub Bot commented on WICKET-6544: Github user nielsbasjes commented on the issue: https://github.com/apache/wicket/pull/275 On a more general note: I think the DeviceClass field might be useful for Wicket as it indicates if the device is a phone, tablet or desktop. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16522261#comment-16522261 ] ASF GitHub Bot commented on WICKET-6544: Github user nielsbasjes commented on the issue: https://github.com/apache/wicket/pull/275 @klopfdreh A few points about the slow startup. When you explicitly specify which fields you really need the system will completely 'not load' the rules that have no impact. Especially if you do not need the DeviceBrand/DeviceName the impact will be quite large. You can simply pass something like this .withField("AgentName") .withField("DeviceClass") .withField("AgentVersion") and it will have a big impact on both startup times and run times for a not yet cached parse. I had a look at your project and with this patch the startup time drops to less than 1.5 seconds. ``` diff --git pom.xml pom.xml index 00cc8f8..7910bd9 100644 --- pom.xml +++ pom.xml @@ -146,7 +146,7 @@ nl.basjes.parse.useragent yauaa - 4.2 + 4.5 com.google.code.findbugs diff --git wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java index 5a02a3d..1e488e9 100644 --- wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java +++ wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java @@ -151,6 +151,9 @@ public class WebClientInfo extends ClientInfo { userAgentAnalyzer = UserAgentAnalyzer.newBuilder() .hideMatcherLoadStats() + .dropTests() + .withField("AgentName") + .withField("AgentVersion") .withCache(25000) .build(); Application.get().setMetaData(UAA_META_DATA_KEY, userAgentAnalyzer); @@ -217,7 +220,7 @@ public class WebClientInfo extends ClientInfo */ protected void setBrowserVersion(nl.basjes.parse.useragent.UserAgent parsedUserAgent) { - String value = parsedUserAgent.get("AgentVersion").getValue(); + String value = parsedUserAgent.getValue("AgentVersion"); if (!"Hacker".equals(value)) { properties.setBrowserVersion(value); ``` > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453813#comment-16453813 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/275 To create UserAgentAnalyzer takes rather a long time. Maybe we are able to find a way to resolve the bottleneck, but my concerns to implement the browser detection in such a bad way like it was before also still hold. Also when I see the benchmarks I would consider to just inform about the bottleneck and keep it that way, or to turn it gatherExtendedInfo() off if 0.011ms are to much. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453809#comment-16453809 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r184343253 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -133,24 +140,99 @@ public final String getUserAgent() } /** -* returns the user agent string (lower case). +* Initializes the {@link WebClientInfo} user agent detection. This can be overridden to choose +* a different detection as YAUAA (https://github.com/nielsbasjes/yauaa) - if you do so, you +* might exclude the maven dependency from your project in favor of a different framework. +*/ --- End diff -- Ok, then keep the dependency and just override it. We have to adjust the documentation here. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453594#comment-16453594 ] ASF GitHub Bot commented on WICKET-6544: Github user svenmeier commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r184288167 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -133,24 +140,99 @@ public final String getUserAgent() } /** -* returns the user agent string (lower case). +* Initializes the {@link WebClientInfo} user agent detection. This can be overridden to choose +* a different detection as YAUAA (https://github.com/nielsbasjes/yauaa) - if you do so, you +* might exclude the maven dependency from your project in favor of a different framework. +*/ --- End diff -- No, you can't exclude the dependency - with UserAgentAnalyzer in the signature of #detectBrowserProperties(UserAgentAnalyzer) you will get a NoClassDefFoundError if the dependency is not present. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453564#comment-16453564 ] ASF GitHub Bot commented on WICKET-6544: Github user svenmeier commented on the issue: https://github.com/apache/wicket/pull/275 My concerns still hold :( Most importantly: with that single UserAgentAnalyzer instance you've introduced a bottleneck for all concurrent request that need to gatherExtendedInfo(). > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453549#comment-16453549 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax closed the pull request at: https://github.com/apache/wicket/pull/269 > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453548#comment-16453548 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on the issue: https://github.com/apache/wicket/pull/269 OK, let's close this one :) > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453533#comment-16453533 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/269 Close this one in favour of the mentioned one? (https://github.com/apache/wicket/pull/275) > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16453530#comment-16453530 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/275 What about merging this? Or do we proceed with this PR after the release @bitstorm ? > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16445583#comment-16445583 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/275 I send you an invitation to the repo in which the branch of the PR is located. just push to it and merge if you are done. I think we are on a good way with this integration. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16445579#comment-16445579 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on the issue: https://github.com/apache/wicket/pull/275 OK :) I'll merge my changes > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16445578#comment-16445578 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/275 Hi @solomax - thanks a lot for the review. Because I am not able to work on it currently I am going to grant you access to my repo for further commits. Is this ok for you? > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16445524#comment-16445524 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r182993206 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- Sorry for delay, here is the code works for me: ``` private static ThreadLocal localAnalyzer = new ThreadLocal(); @Before public void before() { requestCycleMock = mock(RequestCycle.class); webRequest = mock(ServletWebRequest.class); when(requestCycleMock.getRequest()).thenReturn(webRequest); servletRequest = mock(HttpServletRequest.class); when(webRequest.getContainerRequest()).thenReturn(servletRequest); if (localAnalyzer.get() == null) { WebClientInfo webClientInfo = new WebClientInfo(requestCycleMock, "test"); webClientInfo.gatherExtendedInfo(); localAnalyzer.set(Application.get().getMetaData(WebClientInfo.UAA_META_DATA_KEY)); } else { Application.get().setMetaData(WebClientInfo.UAA_META_DATA_KEY, localAnalyzer.get()); } } @AfterClass public static void staticAfter() { localAnalyzer.set(null); } ``` Here are the measurment results: ``` Combined tests real0m24.123s user1m30.748s sys 0m1.804s Individual tests (after above changes were applied) real0m22.844s user1m23.948s sys 0m1.832s ``` > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16445504#comment-16445504 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r182987156 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -143,215 +150,133 @@ private String getUserAgentStringLc() } /** -* When using ProxyPass, requestCycle().getHttpServletRequest(). getRemoteAddr() returns the IP -* of the machine forwarding the request. In order to maintain the clients ip address, the -* server places it in the http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#x-headers";>X-Forwarded-For -* Header. -* -* Proxies may also mask the original client IP with tokens like "hidden" or "unknown". -* If so, the last proxy ip address is returned. -* -* @param requestCycle -*the request cycle -* @return remoteAddr IP address of the client, using the X-Forwarded-For header and defaulting -* to: getHttpServletRequest().getRemoteAddr() +* Initializes the {@link WebClientInfo} user agent detection. This can be overridden to choose +* a different detection as YAUAA (https://github.com/nielsbasjes/yauaa) - if you do so, you +* might exclude the maven dependency from your project in favor of a different framework. */ - protected String getRemoteAddr(RequestCycle requestCycle) + public void gatherExtendedInfo() { - ServletWebRequest request = (ServletWebRequest)requestCycle.getRequest(); - HttpServletRequest req = request.getContainerRequest(); - String remoteAddr = request.getHeader("X-Forwarded-For"); - - if (remoteAddr != null) - { - if (remoteAddr.contains(",")) - { - // sometimes the header is of form client ip,proxy 1 ip,proxy 2 ip,...,proxy n ip, - // we just want the client - remoteAddr = Strings.split(remoteAddr, ',')[0].trim(); - } - try - { - // If ip4/6 address string handed over, simply does pattern validation. - InetAddress.getByName(remoteAddr); - } - catch (UnknownHostException e) - { - remoteAddr = req.getRemoteAddr(); - } - } - else + UserAgentAnalyzer userAgentAnalyzer = Application.get().getMetaData(UAA_META_DATA_KEY); + if (userAgentAnalyzer == null) { - remoteAddr = req.getRemoteAddr(); + userAgentAnalyzer = UserAgentAnalyzer.newBuilder() + .hideMatcherLoadStats() + .withCache(25000) + .build(); + Application.get().setMetaData(UAA_META_DATA_KEY, userAgentAnalyzer); } - return remoteAddr; + detectBrowserProperties(userAgentAnalyzer); } /** -* Initialize the client properties object +* Detects browser properties like versions or the type of the browser and applies them to the +* {@link ClientProperties}, override this method if there are errors within the browser / +* version detection due to newer browsers +* +* @param userAgentAnalyzer +*the user agent analyzer to detect browsers and versions */ - private void init() + protected void detectBrowserProperties(UserAgentAnalyzer userAgentAnalyzer) { - setInternetExplorerProperties(); - setOperaProperties(); - setMozillaProperties(); - setKonquerorProperties(); - setChromeProperties(); - setEdgeProperties(); - setSafariProperties(); - log.debug("determined user agent: {}", properties); - } + nl.basjes.parse.useragent.UserAgent parsedUserAgent = userAgentAnalyzer + .parse(getUserAgent()); + String userAgentName = parsedUserAgent.getValue("AgentName"); - /** -* sets the konqueror specific properties -*/ - private void setKonquerorProperties() - { - properties.setBrowserKonqueror(UserAgent.KONQUEROR.matches(getUserAgent())); + //
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16437040#comment-16437040 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181328485 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -46,14 +46,20 @@ /** * The user agent string from the User-Agent header, app. Theoretically, this might differ from -* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, which is -* not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is set. +* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, +* which is not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is +* set. */ private final String userAgent; /** Client properties object. */ private final ClientProperties properties; + private final static UserAgentAnalyzer UAA = UserAgentAnalyzer.newBuilder() --- End diff -- Have a look at the recent changes. A lot of stuff changed already and I think it is ok like it is now (except the tests) > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436969#comment-16436969 ] ASF GitHub Bot commented on WICKET-6544: Github user svenmeier commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181308489 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -46,14 +46,20 @@ /** * The user agent string from the User-Agent header, app. Theoretically, this might differ from -* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, which is -* not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is set. +* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, +* which is not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is +* set. */ private final String userAgent; /** Client properties object. */ private final ClientProperties properties; + private final static UserAgentAnalyzer UAA = UserAgentAnalyzer.newBuilder() --- End diff -- UserAgentAnalyzer#parse(UserAgent) is synchronized, please check its code. This is even mentioned on the project home page. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436937#comment-16436937 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181303063 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- Hehe me too 😄 - no hurry, because I think this is going to be released in a further version. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436917#comment-16436917 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181297750 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- Will try to provide patch later tonight Have to do day time job right now :( > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436915#comment-16436915 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181296712 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- May you have any other good idea to keep the tests individual. Just send a patch to me if something would fit the requirement and I am going to integrate it. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436912#comment-16436912 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181295733 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- Yes that is true, but I think if you change the code / the browser detection you are going to investigate why the test is failing and fix the integration as long as every test is back working again. @BeforeClass is not working, because WicketTestCase and at this stage no Application is attached to the main thread. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436907#comment-16436907 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181294275 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- All subsequent lines will not be executed in case of failure > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436905#comment-16436905 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181293918 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- You can move init to `@BeforeClass` . > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436904#comment-16436904 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181293718 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- You will see if something fails in the test results btw. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436903#comment-16436903 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181293658 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- This might slow down the test execution because of the init of YAUAA - try it out. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436902#comment-16436902 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181293591 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -59,9 +58,52 @@ public void before() } /** -* Test IE 6.x user-agent strings +* Test check check all user agents */ @Test + public void testBrowsersAndVersionsOfUserAgents() { + // Internet Explorers --- End diff -- I would rather have all these as individual tests, to be able to see which one was failed And run all of them regardless failure state of others > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436900#comment-16436900 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181293350 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -147,6 +149,93 @@ private String getUserAgentStringLc() return (getUserAgent() != null) ? getUserAgent().toLowerCase() : ""; } + /** +* Initializes the {@link WebClientInfo} user agent detection. This can be overridden to choose +* a different detection as YAUAA (https://github.com/nielsbasjes/yauaa) - if you do so, you +* might exclude the maven dependency from your project in favor of a different framework. +*/ + public void initialize() + { + UserAgentAnalyzer userAgentAnalyzer = Application.get().getMetaData(UAA_META_DATA_KEY); + if (userAgentAnalyzer == null) + { + userAgentAnalyzer = UserAgentAnalyzer.newBuilder() + .hideMatcherLoadStats() + .withCache(25000) + .build(); + Application.get().setMetaData(UAA_META_DATA_KEY, userAgentAnalyzer); + } + detectBrowserProperties(userAgentAnalyzer); + } + + /** +* Detects browser properties like versions or the type of the browser and applies them to the +* {@link ClientProperties}, override this method if there are errors within the browser / +* version detection due to newer browsers +* +* @param userAgentAnalyzer +*the user agent analyzer to detect browsers and versions +*/ + protected void detectBrowserProperties(UserAgentAnalyzer userAgentAnalyzer) + { + + nl.basjes.parse.useragent.UserAgent parsedUserAgent = userAgentAnalyzer + .parse(getUserAgent()); + String userAgentName = parsedUserAgent.getValue("AgentName"); + + // Konqueror + properties.setBrowserKonqueror(UserAgent.KONQUEROR.getUaStrings().contains(userAgentName)); + + // Chrome + properties.setBrowserChrome(UserAgent.CHROME.getUaStrings().contains(userAgentName)); + + // Edge + properties.setBrowserEdge(UserAgent.EDGE.getUaStrings().contains(userAgentName)); + + // Safari + properties.setBrowserSafari(UserAgent.SAFARI.getUaStrings().contains(userAgentName)); + + // Opera + properties.setBrowserOpera(UserAgent.OPERA.getUaStrings().contains(userAgentName)); + + // Internet Explorer + properties.setBrowserInternetExplorer( + UserAgent.INTERNET_EXPLORER.getUaStrings().contains(userAgentName)); + + // FireFox + boolean isFireFox = UserAgent.FIREFOX.getUaStrings() + .contains(parsedUserAgent.getValue("AgentName")); + if (isFireFox) + { + properties.setBrowserMozillaFirefox(true); + properties.setBrowserMozilla(true); + } + else + { + properties.setBrowserMozilla( + UserAgent.MOZILLA.getUaStrings().contains(parsedUserAgent.getValue("AgentName"))); --- End diff -- `userAgentName` > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??M
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436899#comment-16436899 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181293318 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -147,6 +149,93 @@ private String getUserAgentStringLc() return (getUserAgent() != null) ? getUserAgent().toLowerCase() : ""; } + /** +* Initializes the {@link WebClientInfo} user agent detection. This can be overridden to choose +* a different detection as YAUAA (https://github.com/nielsbasjes/yauaa) - if you do so, you +* might exclude the maven dependency from your project in favor of a different framework. +*/ + public void initialize() + { + UserAgentAnalyzer userAgentAnalyzer = Application.get().getMetaData(UAA_META_DATA_KEY); + if (userAgentAnalyzer == null) + { + userAgentAnalyzer = UserAgentAnalyzer.newBuilder() + .hideMatcherLoadStats() + .withCache(25000) + .build(); + Application.get().setMetaData(UAA_META_DATA_KEY, userAgentAnalyzer); + } + detectBrowserProperties(userAgentAnalyzer); + } + + /** +* Detects browser properties like versions or the type of the browser and applies them to the +* {@link ClientProperties}, override this method if there are errors within the browser / +* version detection due to newer browsers +* +* @param userAgentAnalyzer +*the user agent analyzer to detect browsers and versions +*/ + protected void detectBrowserProperties(UserAgentAnalyzer userAgentAnalyzer) + { + + nl.basjes.parse.useragent.UserAgent parsedUserAgent = userAgentAnalyzer + .parse(getUserAgent()); + String userAgentName = parsedUserAgent.getValue("AgentName"); + + // Konqueror + properties.setBrowserKonqueror(UserAgent.KONQUEROR.getUaStrings().contains(userAgentName)); + + // Chrome + properties.setBrowserChrome(UserAgent.CHROME.getUaStrings().contains(userAgentName)); + + // Edge + properties.setBrowserEdge(UserAgent.EDGE.getUaStrings().contains(userAgentName)); + + // Safari + properties.setBrowserSafari(UserAgent.SAFARI.getUaStrings().contains(userAgentName)); + + // Opera + properties.setBrowserOpera(UserAgent.OPERA.getUaStrings().contains(userAgentName)); + + // Internet Explorer + properties.setBrowserInternetExplorer( + UserAgent.INTERNET_EXPLORER.getUaStrings().contains(userAgentName)); + + // FireFox + boolean isFireFox = UserAgent.FIREFOX.getUaStrings() + .contains(parsedUserAgent.getValue("AgentName")); --- End diff -- `userAgentName` > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see a
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436897#comment-16436897 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/275 Following changes have been made: * The init() method has been changed into gatherExtendedInfo() which is only be executed if org.apache.wicket.settings.RequestCycleSettings.setGatherExtendedBrowserInfo(boolean) is set to true * MetaDataKey has been used to initialize YAUAA * All browser specific methods have been moved into detectBrowserProperties * gatherExtendedInfo / detectBrowserProperties are protected / public so that the user may override them > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436819#comment-16436819 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181286646 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -46,14 +46,20 @@ /** * The user agent string from the User-Agent header, app. Theoretically, this might differ from -* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, which is -* not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is set. +* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, +* which is not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is +* set. */ private final String userAgent; /** Client properties object. */ private final ClientProperties properties; + private final static UserAgentAnalyzer UAA = UserAgentAnalyzer.newBuilder() --- End diff -- The initialization is expensive, but the UserAgentAnalyzer is thread safe so it can be reused. Maybe we are able to use MetaDataKey > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436810#comment-16436810 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181286230 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -193,165 +198,117 @@ protected String getRemoteAddr(RequestCycle requestCycle) */ private void init() { - setInternetExplorerProperties(); - setOperaProperties(); - setMozillaProperties(); - setKonquerorProperties(); - setChromeProperties(); - setEdgeProperties(); - setSafariProperties(); + nl.basjes.parse.useragent.UserAgent parsedUserAgent = UAA.parse(getUserAgent()); + setInternetExplorerProperties(parsedUserAgent); + setKonquerorProperties(parsedUserAgent); + setMozillaProperties(parsedUserAgent); + setOperaProperties(parsedUserAgent); + setChromeProperties(parsedUserAgent); + setEdgeProperties(parsedUserAgent); + setSafariProperties(parsedUserAgent); --- End diff -- Hi @solomax - yes indeed - it was due to the refactoring and those methods were present before - I just refactored them. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436780#comment-16436780 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181282823 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -193,165 +198,117 @@ protected String getRemoteAddr(RequestCycle requestCycle) */ private void init() { - setInternetExplorerProperties(); - setOperaProperties(); - setMozillaProperties(); - setKonquerorProperties(); - setChromeProperties(); - setEdgeProperties(); - setSafariProperties(); + nl.basjes.parse.useragent.UserAgent parsedUserAgent = UAA.parse(getUserAgent()); + setInternetExplorerProperties(parsedUserAgent); + setKonquerorProperties(parsedUserAgent); + setMozillaProperties(parsedUserAgent); + setOperaProperties(parsedUserAgent); + setChromeProperties(parsedUserAgent); + setEdgeProperties(parsedUserAgent); + setSafariProperties(parsedUserAgent); --- End diff -- can be replaced with String agent = parsedUserAgent.getValue("AgentName"); properties.setBrowserKonqueror(UserAgent.KONQUEROR.getUaStrings().contains(agent)); properties.setBrowserChrome(UserAgent.CHROME.getUaStrings().contains(agent)); . setBrowserVersion(parsedUserAgent); > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436776#comment-16436776 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181282313 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -193,165 +198,117 @@ protected String getRemoteAddr(RequestCycle requestCycle) */ private void init() { - setInternetExplorerProperties(); - setOperaProperties(); - setMozillaProperties(); - setKonquerorProperties(); - setChromeProperties(); - setEdgeProperties(); - setSafariProperties(); + nl.basjes.parse.useragent.UserAgent parsedUserAgent = UAA.parse(getUserAgent()); + setInternetExplorerProperties(parsedUserAgent); + setKonquerorProperties(parsedUserAgent); + setMozillaProperties(parsedUserAgent); + setOperaProperties(parsedUserAgent); + setChromeProperties(parsedUserAgent); + setEdgeProperties(parsedUserAgent); + setSafariProperties(parsedUserAgent); --- End diff -- All these methods looks very much the same > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436321#comment-16436321 ] ASF GitHub Bot commented on WICKET-6544: Github user svenmeier commented on a diff in the pull request: https://github.com/apache/wicket/pull/275#discussion_r181224559 --- Diff: wicket-core/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java --- @@ -46,14 +46,20 @@ /** * The user agent string from the User-Agent header, app. Theoretically, this might differ from -* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, which is -* not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is set. +* {@link org.apache.wicket.protocol.http.ClientProperties#isNavigatorJavaEnabled()} property, +* which is not set until an actual reply from a browser (e.g. using {@link BrowserInfoPage} is +* set. */ private final String userAgent; /** Client properties object. */ private final ClientProperties properties; + private final static UserAgentAnalyzer UAA = UserAgentAnalyzer.newBuilder() --- End diff -- UserAgentAnalyzer isn't reentrant. Since it is expensive to create one, instances have to be pooled. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16435031#comment-16435031 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/269 See my suggestion over here: https://github.com/apache/wicket/pull/269 > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16435029#comment-16435029 ] ASF GitHub Bot commented on WICKET-6544: GitHub user klopfdreh opened a pull request: https://github.com/apache/wicket/pull/275 [WICKET-6544] mobile browser detection is improved (with YAUAA) Hi all, here my 5 cent regarding the browser detection with https://github.com/nielsbasjes/yauaa you have to extend the test to see the real benefit. kind regards Tobias You can merge this pull request into a Git repository by running: $ git pull https://github.com/klopfdreh/wicket browser_version_detection Alternatively you can review and apply these changes as the patch at: https://github.com/apache/wicket/pull/275.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #275 commit 96bab261b5c9e96393737444ac9601eda97ef7bc Author: Tobias Soloschenko Date: 2018-04-12T07:05:19Z Browser / Version detection > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426818#comment-16426818 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/269 In my opinion and because of such a big pool of browsers I would say yes. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426777#comment-16426777 ] ASF GitHub Bot commented on WICKET-6544: Github user svenmeier commented on the issue: https://github.com/apache/wicket/pull/269 Guys I get it, there are many good solutions to choose from, but why should we make Wicket dependent on anyone of them? https://github.com/nielsbasjes/yauaa looks good, but do users really need assistance for this? `UserAgent userAgent = analyzer.parse(new WebClientInfo(requestCycle).getUserAgent());` > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426607#comment-16426607 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/269 I just tested a bit around and I would suggest the following changes: * Drop the support for minor version in exchange for a full version String (11.0, 3.5.8, 4.0b4a) * Change the implementation to yauaa - I also played around a bit and found some not correctly resolved version numbers (the browsers are all detected correctly) https://github.com/nielsbasjes/yauaa/issues/75 * Change the UserAgent enum to not handle excludes, but only browser names If the issue is fixed I can provide a PR. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426055#comment-16426055 ] ASF GitHub Bot commented on WICKET-6544: Github user klopfdreh commented on the issue: https://github.com/apache/wicket/pull/269 I also looked a bit around and stumbled over Apache DeviceMap which has been moved into the Attic and from the Attic (http://attic.apache.org/projects/devicemap.html) I followed the link to https://github.com/nielsbasjes/yauaa which seems to be maintained. @kbachl - I understand your suggestion to remove it because of reliability, but I would keep the functionality with the hint that there might be some not supported browsers which is better than no detection. > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16423835#comment-16423835 ] Sven Meier commented on WICKET-6544: We should differentiate between Wicket's internal usage of user agent sniffing, the JavaScript and Java API: Wicket.Browser in wicket-ajax-jquery.js offers a JS API for detection of some browsers, these methods are used 6 times (3 more times in wicket-autocomplete.js) - refusing to work on Safari < 2.0.0 (X) - handling redirect for firefox 3 (X) - uppercasing
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16417692#comment-16417692 ] ASF GitHub Bot commented on WICKET-6544: Github user kbachl commented on the issue: https://github.com/apache/wicket/pull/269 drop this "feature" completely - it just wont work reliable anyway > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409162#comment-16409162 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on the issue: https://github.com/apache/wicket/pull/269 And/or maybe browser list and supported patterns can be cleaned up to support more recent versions only? > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409160#comment-16409160 ] ASF GitHub Bot commented on WICKET-6544: Github user martin-g commented on the issue: https://github.com/apache/wicket/pull/269 With the addition of these new mobile browsers user agent strings the code becomes more complex. Maybe we should think in direction how to make use of external libraries to do this checks, e.g. https://github.com/pieroxy/java-user-agent-detection or https://github.com/HaraldWalker/user-agent-utils > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16408121#comment-16408121 ] ASF GitHub Bot commented on WICKET-6544: Github user solomax commented on a diff in the pull request: https://github.com/apache/wicket/pull/269#discussion_r176132347 --- Diff: wicket-core/src/test/java/org/apache/wicket/protocol/http/request/WebClientInfoTest.java --- @@ -680,6 +708,35 @@ public void konqueror() } } + @Test + public void ffMobile() + { + final String userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 Safari/604.5.6"; + WebClientInfo webClientInfo = new WebClientInfo(requestCycleMock, userAgent); + + assertThat(userAgent, webClientInfo.getProperties().getBrowserVersionMajor(), + is(equalTo(10))); + assertThat(userAgent, webClientInfo.getProperties().getBrowserVersionMinor(), + is(equalTo(6))); + assertThat(userAgent, webClientInfo.getProperties().isBrowserMozillaFirefox(), + is(equalTo(true))); + assertThat(userAgent, webClientInfo.getProperties().isBrowserMozilla(), --- End diff -- This part is something I don;t really like in this PR :( > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16408116#comment-16408116 ] ASF GitHub Bot commented on WICKET-6544: GitHub user solomax opened a pull request: https://github.com/apache/wicket/pull/269 [WICKET-6544] mobile browser detection is improved You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/wicket WICKET-6544-mobile-browsers Alternatively you can review and apply these changes as the patch at: https://github.com/apache/wicket/pull/269.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #269 commit 0cc14749903f51057cc75d011cbc8a02a4e42f4c Author: Maxim Solodovnik Date: 2018-03-21T15:44:17Z [WICKET-6544] mobile browser detection is improved > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (WICKET-6544) Chrome and Firefox on iOS detected as Safari version -1
[ https://issues.apache.org/jira/browse/WICKET-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16408114#comment-16408114 ] ASF subversion and git services commented on WICKET-6544: - Commit 0cc14749903f51057cc75d011cbc8a02a4e42f4c in wicket's branch refs/heads/WICKET-6544-mobile-browsers from [~solomax] [ https://git-wip-us.apache.org/repos/asf?p=wicket.git;h=0cc1474 ] [WICKET-6544] mobile browser detection is improved > Chrome and Firefox on iOS detected as Safari version -1 > --- > > Key: WICKET-6544 > URL: https://issues.apache.org/jira/browse/WICKET-6544 > Project: Wicket > Issue Type: Bug > Components: wicket >Affects Versions: 7.9.0 >Reporter: Sven Ackermann >Assignee: Maxim Solodovnik >Priority: Major > > The UserAgent detection on iOS for browsers other than Safari does not work > correctly. > E.g. Chrome 64 has UserAgent > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.1.34 (KHTML, like Gecko) CriOS/64.0.3282.112 Mobile/15D100 > Safari/604.1?? > which is recognized by classes {{UserAgent}} and {{WebClientInfo}} as Safari > with no version (-1). The problem is that the UserAgent does not contain > "Chrome" as required by {{UserAgent.CHROME}}, but instead "CriOS". So it is > recognized as Safari, but since it does not contain "version/", no version is > set. > A similar problem exists for Firefox on iOS where the UserAgent contains > "FxiOS" instead of "Firefox": > ??Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_6 like Mac OS X) > AppleWebKit/604.5.6 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/15D100 > Safari/604.5.6?? > In our application this causes some unwanted redirects to legacy pages > because we think it is an old Safari browser with no support for some > features our pages need. But of course the Chrome und Firefox versions above > support all that. > see also > [https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent|https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent,] > and > [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox#Firefox_for_iOS] > > Thanks for looking into it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)