Update getGeckoVersion() to support beta versions of Firefox. Previously, gecko versions of the form 2.0b10 would cause the regex to get mad because it is missing a second period. This change updates the gecko version detector to support gecko versions such as 1.2.3, 1.2, and 2.0b10. Review at http://gwt-code-reviews.appspot.com/1343803 Review by: jlabanca@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9684 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java index d892460..7891f97 100644 --- a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java +++ b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
@@ -19,12 +19,12 @@ * Mozilla implementation of StandardBrowser. */ class DOMImplMozilla extends DOMImplStandard { - + private static native int getGeckoVersion() /*-{ - var result = /rv:([0-9]+)\.([0-9]+)\.([0-9]+)?/.exec(navigator.userAgent.toLowerCase()); + var result = /rv:([0-9]+)\.([0-9]+)(\.([0-9]+))?.*?/.exec(navigator.userAgent.toLowerCase()); if (result && result.length >= 3) { - var version = (parseInt(result[1]) * 1000000) + (parseInt(result[2]) * 1000) + - parseInt(result.length == 4 ? result[3] : 0); + var version = (parseInt(result[1]) * 1000000) + (parseInt(result[2]) * 1000) + + parseInt(result.length >= 5 && !isNaN(result[4]) ? result[4] : 0); return version; } return -1; // not gecko @@ -40,7 +40,7 @@ int geckoVersion = getGeckoVersion(); return (geckoVersion != -1) && (geckoVersion <= 1009000); } - + /** * Return true if using Gecko 1.9.1 (Firefox 3.5) or earlier. *