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