Author: jcompagner
Date: Tue Jul 13 11:26:33 2010
New Revision: 963681

URL: http://svn.apache.org/viewvc?rev=963681&view=rev
Log:
chrome browser detection (previously it was just safari)

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java?rev=963681&r1=963680&r2=963681&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/ClientProperties.java
 Tue Jul 13 11:26:33 2010
@@ -59,6 +59,7 @@ public class ClientProperties implements
        private boolean browserMozillaFirefox;
        private boolean browserOpera;
        private boolean browserSafari;
+       private boolean browserChrome;
        private int browserVersionMajor = -1;
        private int browserVersionMinor = -1;
        private int browserWidth = -1;
@@ -415,6 +416,16 @@ public class ClientProperties implements
        }
 
        /**
+        * Flag indicating that the browser is a derivative of the Chrome 
browser platform.
+        * 
+        * @return True if a derivative of the Chrome browser platform.
+        */
+       public boolean isBrowserChrome()
+       {
+               return browserChrome;
+       }
+
+       /**
         * 
         * 
         * @return The client's navigator.cookieEnabled property.
@@ -751,6 +762,17 @@ public class ClientProperties implements
        }
 
        /**
+        * Flag indicating that the browser is a derivative of the Chrome 
browser platform.
+        * 
+        * @param browserChrome
+        *            True if a derivative of the Chrome browser platform.
+        */
+       public void setBrowserChrome(boolean browserChrome)
+       {
+               this.browserChrome = browserChrome;
+       }
+
+       /**
         * @param browserVersionMajor
         *            The major version number of the browser.
         */

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java?rev=963681&r1=963680&r2=963681&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/request/WebClientInfo.java
 Tue Jul 13 11:26:33 2010
@@ -146,14 +146,20 @@ public class WebClientInfo extends Clien
        {
                String userAgent = (getUserAgent() != null) ? 
getUserAgent().toLowerCase() : "";
 
+               boolean browserChrome = userAgent.indexOf("chrome") != -1;
                boolean browserOpera = userAgent.indexOf("opera") != -1;
-               boolean browserSafari = userAgent.indexOf("safari") != -1;
                boolean browserKonqueror = userAgent.indexOf("konqueror") != -1;
 
                // Note deceptive user agent fields:
-               // - Konqueror and Safari UA fields contain "like Gecko"
+               // - Konqueror and Chrome UA fields contain "like Gecko"
                // - Opera UA field typically contains "MSIE"
-               boolean deceptiveUserAgent = browserOpera || browserSafari || 
browserKonqueror;
+               // - Chrome UA field contains "Safari"
+               boolean deceptiveUserAgent = browserOpera || browserKonqueror 
|| browserChrome;
+
+               boolean browserSafari = !deceptiveUserAgent && 
userAgent.indexOf("safari") != -1;
+
+               // -Safari UA fields contain "like Gecko"
+               deceptiveUserAgent = deceptiveUserAgent || browserSafari;
 
                boolean browserMozilla = !deceptiveUserAgent && 
userAgent.indexOf("gecko") != -1;
                boolean browserFireFox = userAgent.indexOf("firefox") != -1;
@@ -174,6 +180,10 @@ public class WebClientInfo extends Clien
                {
                        properties.setBrowserSafari(true);
                }
+               else if (browserChrome)
+               {
+                       properties.setBrowserChrome(true);
+               }
                else if (browserMozilla)
                {
                        properties.setBrowserMozilla(true);


Reply via email to