Reviewers: bobv, rjrjr,

Description:
user.agent proposal.


Please review this at http://gwt-code-reviews.appspot.com/1354806/show

Affected files:
  M user/src/com/google/gwt/user/UserAgent.gwt.xml


Index: user/src/com/google/gwt/user/UserAgent.gwt.xml
===================================================================
--- user/src/com/google/gwt/user/UserAgent.gwt.xml      (revision 9744)
+++ user/src/com/google/gwt/user/UserAgent.gwt.xml      (working copy)
@@ -19,10 +19,77 @@
 <module>

   <!-- Browser-sensitive code should use the 'user.agent' property -->
- <define-property name="user.agent" values="ie6,ie8,gecko1_8,safari,opera"/>
-
+
+  <!--
+       DEPRECATED - prefer new user.agent.{ua}OrLater, where {ua} is a user
+       agent specification name.
+           example: user.agent.IE8OrLater
+  -->
+ <define-property name="user.agent" values="ie6,ie8,gecko1_8,safari,opera"/>
+
+ <!-- todo: will go away once we agree on this plan - add remaining ua (safari,ff, opera) --> <property-provider name="user.agent" generator="com.google.gwt.user.rebind.UserAgentPropertyGenerator"/>

+  <define-property name="user.agent.IE6OrLater" values="true,false"/>
+  <property-provider name="user.agent.IE6OrLater"><![CDATA[
+    function makeVersion(result) {
+      return (parseInt(result[1]) * 1000) + parseInt(result[2]);
+    }
+    var ua = navigator.userAgent.toLowerCase();
+    if (ua.indexOf("msie") != -1) {
+      var result = /msie ([0-9]+)\.([0-9]+)/.exec(ua);
+      if (result && result.length == 3) {
+        var v = makeVersion(result);
+        if (v < 7000) {
+          return "true";
+        }
+      }
+    }
+    return "false";
+  ]]>
+  </property-provider>
+  <set-property name="user.agent" value="ie6" >
+    <when-property-is name="user.agent.IE6OrLater" value="true"/>
+  </set-property>
+
+  <define-property name="user.agent.IE7OrLater" values="true,false"/>
+  <property-provider name="user.agent.IE7OrLater"><![CDATA[
+    function makeVersion(result) {
+      return (parseInt(result[1]) * 1000) + parseInt(result[2]);
+    }
+    var ua = navigator.userAgent.toLowerCase();
+    if (ua.indexOf("msie") != -1) {
+      var result = /msie ([0-9]+)\.([0-9]+)/.exec(ua);
+      if (result && result.length == 3) {
+        var v = makeVersion(result);
+        if (v < 8000) {
+          return "true";
+        }
+      }
+    }
+    return "false";
+  ]]>
+  </property-provider>
+  <set-property name="user.agent" value="ie6" >
+    <when-property-is name="user.agent.IE7OrLater" value="true"/>
+  </set-property>
+
+  <define-property name="user.agent.IE8OrLater" values="true,false"/>
+  <property-provider name="user.agent.IE8OrLater"><![CDATA[
+ return ((navigator.userAgent.toLowerCase().indexOf('msie') != -1) && (document.documentMode == 8)).toString();
+  ]]>
+   </property-provider>
+   <set-property name="user.agent" value="ie8" >
+     <when-property-is name="user.agent.IE8OrLater" value="true"/>
+   </set-property>
+
+  <define-property name="user.agent.IE9OrLater" values="true,false"/>
+  <property-provider name="user.agent.IE9OrLater"><![CDATA[
+ return ((navigator.userAgent.toLowerCase().indexOf('msie') != -1) && (document.documentMode == 9)).toString();
+  ]]>
+  </property-provider>
+
+
<!-- Set to false to avoid runtime warnings for mismatched runtime and -->
   <!-- compile time user.agent values -->
   <define-configuration-property name="user.agent.runtimeWarning"


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to