Gss2Css converter: Don't escape StringValue content.

Change-Id: Icffa55f9b196fca49c85d179b3b88f814533bd70
(cherry picked from commit 509da4abf6fa7c50a7136a692e953e89b59c27a8)
diff --git a/user/src/com/google/gwt/resources/converter/GssGenerationVisitor.java b/user/src/com/google/gwt/resources/converter/GssGenerationVisitor.java
index 63280fa..2c47501 100644
--- a/user/src/com/google/gwt/resources/converter/GssGenerationVisitor.java
+++ b/user/src/com/google/gwt/resources/converter/GssGenerationVisitor.java
@@ -29,6 +29,7 @@
 import com.google.gwt.resources.css.ast.CssPageRule;
 import com.google.gwt.resources.css.ast.CssProperty;
 import com.google.gwt.resources.css.ast.CssProperty.DotPathValue;
+import com.google.gwt.resources.css.ast.CssProperty.StringValue;
 import com.google.gwt.resources.css.ast.CssProperty.Value;
 import com.google.gwt.resources.css.ast.CssRule;
 import com.google.gwt.resources.css.ast.CssSelector;
@@ -596,7 +597,11 @@
         }
       }
 
-      builder.append(unescape(expression));
+      if (value instanceof StringValue) {
+        builder.append(expression);
+      } else {
+        builder.append(unescape(expression));
+      }
     }
 
     return builder.toString();
diff --git a/user/test/com/google/gwt/resources/converter/Css2GssTest.java b/user/test/com/google/gwt/resources/converter/Css2GssTest.java
index 4476cd4..4816ec8 100644
--- a/user/test/com/google/gwt/resources/converter/Css2GssTest.java
+++ b/user/test/com/google/gwt/resources/converter/Css2GssTest.java
@@ -89,6 +89,10 @@
         "invalidConstantName.css", "invalidConstantName.gss", true);
   }
 
+  public void testEscaping() throws IOException, UnableToCompleteException {
+    assertFileContentEqualsAfterConversion("escape.css", "escape.gss", true);
+  }
+
   private void assertFileContentEqualsAfterConversion(String inputCssFile, String expectedGssFile)
       throws IOException, UnableToCompleteException {
     assertFileContentEqualsAfterConversion(inputCssFile, expectedGssFile, false);
diff --git a/user/test/com/google/gwt/resources/converter/escape.css b/user/test/com/google/gwt/resources/converter/escape.css
new file mode 100644
index 0000000..53c25ea
--- /dev/null
+++ b/user/test/com/google/gwt/resources/converter/escape.css
@@ -0,0 +1,11 @@
+.replacement:after {
+  content: "Hello\\\" world";
+}
+
+div {
+  \-some-wacky-extension: \-bar;
+}
+
+p:nth-child\(2\) {
+  width: 10px;
+}
diff --git a/user/test/com/google/gwt/resources/converter/escape.gss b/user/test/com/google/gwt/resources/converter/escape.gss
new file mode 100644
index 0000000..2477687
--- /dev/null
+++ b/user/test/com/google/gwt/resources/converter/escape.gss
@@ -0,0 +1,12 @@
+
+.replacement:after {
+  content: "Hello\\\" world";
+}
+
+div {
+  -some-wacky-extension: -bar;
+}
+
+p:nth-child(2) {
+  width: 10px;
+}