add ie9 user.agent with fallback binding to ie8. (in preparation for ie9 support).
Review at http://gwt-code-reviews.appspot.com/1369808
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9835 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java b/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java
index 2daa472..8320610 100644
--- a/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java
+++ b/dev/core/src/com/google/gwt/dev/shell/StandardRebindOracle.java
@@ -161,9 +161,10 @@
// and we may have a partial match based on fall back values
assert minCostRuleSoFar != null;
if (minCostRuleSoFar.getFallbackEvaluationCost() < Integer.MAX_VALUE) {
- logger.log(TreeLogger.WARN, "Could not find an exact match rule. Using 'closest' rule " +
- minCostRuleSoFar + " based on fall back values. You may need to implement a specific " +
- "binding in case the fall back behavior does not replace the missing binding");
+ // todo - enable
+ // logger.log(TreeLogger.WARN, "Could not find an exact match rule. Using 'closest' rule " +
+ // minCostRuleSoFar + " based on fall back values. You may need to implement a specific " +
+ // "binding in case the fall back behavior does not replace the missing binding");
if (!usedRules.contains(minCostRuleSoFar)) {
usedRules.add(minCostRuleSoFar);
logger.log(TreeLogger.DEBUG, "No exact match was found, using closest match rule " + minCostRuleSoFar);
diff --git a/user/src/com/google/gwt/user/UserAgent.gwt.xml b/user/src/com/google/gwt/user/UserAgent.gwt.xml
index 261e194..197b0a6 100644
--- a/user/src/com/google/gwt/user/UserAgent.gwt.xml
+++ b/user/src/com/google/gwt/user/UserAgent.gwt.xml
@@ -24,6 +24,7 @@
<extend-property name="user.agent" values="gecko1_8" />
<extend-property name="user.agent" values="safari" />
<extend-property name="user.agent" values="opera" />
+ <extend-property name="user.agent" values="ie9" fallback-value="ie8" />
<property-provider name="user.agent" generator="com.google.gwt.user.rebind.UserAgentPropertyGenerator"/>
<!-- Set to false to avoid runtime warnings for mismatched runtime and -->
diff --git a/user/src/com/google/gwt/user/rebind/UserAgentPropertyGenerator.java b/user/src/com/google/gwt/user/rebind/UserAgentPropertyGenerator.java
index 8c70403..283d659 100644
--- a/user/src/com/google/gwt/user/rebind/UserAgentPropertyGenerator.java
+++ b/user/src/com/google/gwt/user/rebind/UserAgentPropertyGenerator.java
@@ -37,7 +37,7 @@
* class.
*/
private static final List<String> VALID_VALUES = Arrays.asList(new String[]{
- "ie6", "ie8", "gecko1_8", "safari", "opera"});
+ "ie6", "ie8", "gecko1_8", "safari", "opera", "ie9"});
/**
* List of predicates to identify user agent.
@@ -61,6 +61,12 @@
.println("return (ua.indexOf('webkit') != -1);")
.returns("'safari'"),
+ // IE9
+ new UserAgentPropertyGeneratorPredicate("ie9")
+ .getPredicateBlock()
+ .println("return (ua.indexOf('msie') != -1 && ($doc.documentMode >= 9));")
+ .returns("'ie9'"),
+
// IE8
new UserAgentPropertyGeneratorPredicate("ie8")
.getPredicateBlock()
@@ -122,7 +128,7 @@
String fallback, SortedSet<ConfigurationProperty> configProperties) {
for (String value : possibleValues) {
if (!VALID_VALUES.contains(value)) {
- logger.log(TreeLogger.ERROR, "Unrecognized "
+ logger.log(TreeLogger.WARN, "Unrecognized "
+ UserAgentGenerator.PROPERTY_USER_AGENT + " property value '"
+ value + "', possibly due to UserAgent.gwt.xml and "
+ UserAgentPropertyGenerator.class.getName()