Rollback of r2874. The fix for Issue 960 breaks StyleInjector, so we need
to figure out a better way to get whitespace normalization.

Review by: bobv



git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2931 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/dom/client/DOMImpl.java b/user/src/com/google/gwt/dom/client/DOMImpl.java
index 928f3a3..3369ea2 100644
--- a/user/src/com/google/gwt/dom/client/DOMImpl.java
+++ b/user/src/com/google/gwt/dom/client/DOMImpl.java
@@ -180,8 +180,9 @@
 
   public native void setInnerText(Element elem, String text) /*-{
     // Remove all children first.
-    elem.innerHTML = '';
-    
+    while (elem.firstChild) {
+      elem.removeChild(elem.firstChild);
+    }
     // Add a new text node.
     if (text != null) {
       elem.appendChild($doc.createTextNode(text));
diff --git a/user/src/com/google/gwt/dom/client/DOMImplIE6.java b/user/src/com/google/gwt/dom/client/DOMImplIE6.java
index 6285034..fe4e816 100644
--- a/user/src/com/google/gwt/dom/client/DOMImplIE6.java
+++ b/user/src/com/google/gwt/dom/client/DOMImplIE6.java
@@ -101,4 +101,9 @@
       select.add(option);
     }
   }-*/;
+
+  @Override
+  public native void setInnerText(Element elem, String text) /*-{
+    elem.innerText = text || '';
+  }-*/;
 }
diff --git a/user/test/com/google/gwt/user/client/ui/DOMTest.java b/user/test/com/google/gwt/user/client/ui/DOMTest.java
index 40ec2ca..c58977f 100644
--- a/user/test/com/google/gwt/user/client/ui/DOMTest.java
+++ b/user/test/com/google/gwt/user/client/ui/DOMTest.java
@@ -211,31 +211,6 @@
     // should be deleted, including any text nodes, for all supported browsers.
     assertTrue(getDenormalizedChildCount(tdElem) == 0);
   }
-  
-  /**
-   * Tests that {@link DOM#setInnerText(Element, String)} works consistently
-   * across browsers with respect to whitespace. Particularly,
-   * we want to guarantee that whitespace characters won't be replaced with
-   * HTML entities.
-   */
-  public void testSetInnerTextWhitespace() {
-    Element divElem = DOM.createDiv();
-    String spaces = "     ";
-    String whitespace = "   \n\t   ";
-    
-    // Block of spaces first. We call trim because it remvoes leading and
-    // trailing whitespace characters -- so, if all is well, all of them.
-    DOM.setInnerText(divElem, spaces);
-    String contents = DOM.getInnerText(divElem);
-    String trimmed = contents.trim();
-    assertEquals(trimmed, "");
-    
-    // Now with some assorted whitespace.
-    DOM.setInnerText(divElem, whitespace);
-    contents = DOM.getInnerText(divElem);
-    trimmed = contents.trim();
-    assertEquals(trimmed, "");
-  }
 
   /**
    * Tests the correctness of setting the <code>src</code> attribute on