Make CssResourceGenerator produce stable and correct output.

In incremental mode CssResourceGenerator produces collisions of CSS class
names, since its obfuscation depends in an internal counter.
We need the generator to produce stable and unique names,
so we are forcing this in incremental compiles.

Change-Id: I636f8d8254961e2b724a9442cd8b5df83067051b
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java b/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
index 7bd1d72..2086185 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/Recompiler.java
@@ -440,6 +440,17 @@
     maybeOverrideConfig(moduleDef, "propertiesJs",
         "com/google/gwt/core/ext/linker/impl/properties.js");
 
+    if (options.shouldCompilePerFile()) {
+      // CSSResourceGenerator needs to produce stable, unique naming for its input.
+      // Currently on default settings CssResourceGenerator's obfuscation depends on
+      // whole world knowledge and thus will produce collision in obfuscated mode, since in
+      // incremental compiles that information is not available.
+      //
+      // TODO(dankurka): Once we do proper stable hashing of classes in CssResourceGenerator, we
+      // can probably replace / remove this.
+      maybeOverrideConfig(moduleDef, "CssResource.style", "stable");
+    }
+
     overrideBinding(moduleDef, "compiler.useSourceMaps", "true");
     overrideBinding(moduleDef, "compiler.useSymbolMaps", "false");
     overrideBinding(moduleDef, "superdevmode", "on");