[GitHub] wicket pull request #275: [WICKET-6544] mobile browser detection is improved...
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 ---
[GitHub] wicket pull request #275: [WICKET-6544] mobile browser detection is improved...
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. ---
[GitHub] wicket pull request #275: [WICKET-6544] mobile browser detection is improved...
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); ---
[GitHub] wicket pull request #275: [WICKET-6544] mobile browser detection is improved...
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 ---
[GitHub] wicket pull request #275: [WICKET-6544] mobile browser detection is improved...
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. ---
[GitHub] wicket issue #269: [WICKET-6544] mobile browser detection is improved
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 ---