Used elem.textContent to set inner text on all standard browsers. This is more efficient than the default method we implemented.
http://gwt-code-reviews.appspot.com/160805/show
Review by: jgw@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7693 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
index 855e6f1..591f4af 100644
--- a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
+++ b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
@@ -99,11 +99,6 @@
}-*/;
@Override
- public native String getInnerText(Element elem) /*-{
- return elem.textContent;
- }-*/;
-
- @Override
public native int getNodeType(Node node) /*-{
try {
return node.nodeType;
@@ -135,11 +130,6 @@
}-*/;
@Override
- public native void setInnerText(Element elem, String text) /*-{
- elem.textContent = text || '';
- }-*/;
-
- @Override
public void setScrollLeft(Element elem, int left) {
if (!isGecko19() && isRTL(elem)) {
left += elem.getScrollWidth() - elem.getClientWidth();
@@ -227,3 +217,4 @@
return style.direction == 'rtl';
}-*/;
}
+
diff --git a/user/src/com/google/gwt/dom/client/DOMImplSafari.java b/user/src/com/google/gwt/dom/client/DOMImplSafari.java
index 36add53..d928538 100644
--- a/user/src/com/google/gwt/dom/client/DOMImplSafari.java
+++ b/user/src/com/google/gwt/dom/client/DOMImplSafari.java
@@ -213,20 +213,6 @@
: getAbsoluteTopUsingOffsets(elem);
}
- /**
- * textContent is used over innerText for two reasons:
- *
- * 1 - It is consistent with DOMImplMozilla. textContent does not convert
- * <code><br>p;</code>'s to new lines in WebKit.
- *
- * 2 - textContent is faster on retreival because WebKit does not recalculate
- * styles as it does for innerText.
- */
- @Override
- public native String getInnerText(Element node) /*-{
- return node.textContent;
- }-*/;
-
@Override
public int getScrollLeft(Document doc) {
// Safari always applies document scrolling to the body element, even in
@@ -294,14 +280,6 @@
select.removeChild(select.children[index]);
}-*/;
- /*
- * See getInnerText for why textContent is used instead of innerText.
- */
- @Override
- public native void setInnerText(Element elem, String text) /*-{
- elem.textContent = text || '';
- }-*/;
-
@Override
public void setScrollLeft(Document doc, int left) {
// Safari always applies document scrolling to the body element, even in
@@ -344,3 +322,4 @@
return elem.ownerDocument.defaultView.getComputedStyle(elem, '').direction == 'rtl';
}-*/;
}
+
diff --git a/user/src/com/google/gwt/dom/client/DOMImplStandard.java b/user/src/com/google/gwt/dom/client/DOMImplStandard.java
index 0c60aec..7fd9711 100644
--- a/user/src/com/google/gwt/dom/client/DOMImplStandard.java
+++ b/user/src/com/google/gwt/dom/client/DOMImplStandard.java
@@ -107,8 +107,28 @@
return evt.toString();
}-*/;
+ /*
+ * textContent is used over innerText for two reasons:
+ * 1 - It is consistent across browsers. textContent
+ * does not convert <br>'s to new lines.
+ * 2 - textContent is faster on retreival because WebKit
+ * does not recalculate styles as it does for innerText.
+ */
+ @Override
+ public native String getInnerText(Element elem) /*-{
+ return elem.textContent;
+ }-*/;
+
@Override
public native boolean isOrHasChild(Node parent, Node child) /*-{
return parent.contains(child);
}-*/;
+
+ /*
+ * See getInnerText for why textContent is used instead of innerText.
+ */
+ @Override
+ public native void setInnerText(Element elem, String text) /*-{
+ elem.textContent = text || '';
+ }-*/;
}