Fix a problem on Safari/Chrome where docuemntElement.getFirstChild is not
necessarily the head element.
Patch by: dwolf
Review by: jat
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6025 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/jsonp/client/JsonpRequest.java b/user/src/com/google/gwt/jsonp/client/JsonpRequest.java
index 62b2b38..43699ec 100644
--- a/user/src/com/google/gwt/jsonp/client/JsonpRequest.java
+++ b/user/src/com/google/gwt/jsonp/client/JsonpRequest.java
@@ -52,9 +52,9 @@
return $wnd[name] = new Object();
}-*/;
- private static native Node getDocumentElement() /*-{
- return $doc.documentElement;
- }-*/;
+ private static Node getHeadElement() {
+ return Document.get().getElementsByTagName("head").getItem(0);
+ }
private static String nextCallbackId() {
return "I" + (callbackCounter++);
@@ -142,7 +142,7 @@
script.setType("text/javascript");
script.setId(callbackId);
script.setSrc(uri.toString());
- getDocumentElement().getFirstChild().appendChild(script);
+ getHeadElement().appendChild(script);
timer = new Timer() {
@Override
public void run() {
@@ -225,7 +225,7 @@
public void execute() {
unregisterCallbacks(CALLBACKS);
Node script = Document.get().getElementById(callbackId);
- getDocumentElement().getFirstChild().removeChild(script);
+ getHeadElement().removeChild(script);
}
});
}