[ 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<UserAgentAnalyzer> localAnalyzer = new ThreadLocal<UserAgentAnalyzer>(); @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 real 0m24.123s user 1m30.748s sys 0m1.804s Individual tests (after above changes were applied) real 0m22.844s user 1m23.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)