import java.util.Map;
import java.util.Set;
-import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.core.client.JsArrayString;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.impl.HTTPRequestImpl;
import com.google.gwt.user.client.ui.FocusWidget;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.Widget;
endRequest();
}
} else {
- // Synchronized call, discarded response
-
- syncSendForce(((HTTPRequestImpl) GWT.create(HTTPRequestImpl.class))
- .createXmlHTTPRequest(), uri + "&" + PARAM_UNLOADBURST
- + "=1", rd);
+ // Synchronized call, discarded response (leaving the page)
+ SynchronousXHR syncXHR = (SynchronousXHR) SynchronousXHR.create();
+ syncXHR.synchronousPost(uri + "&" + PARAM_UNLOADBURST + "=1", rd);
}
}
}
}
- private native void syncSendForce(JavaScriptObject xmlHttpRequest,
- String uri, String requestData)
- /*-{
- try {
- xmlHttpRequest.open("POST", uri, false);
- xmlHttpRequest.setRequestHeader("Content-Type", "text/plain;charset=utf-8");
- xmlHttpRequest.send(requestData);
- } catch (e) {
- // No errors are managed as this is synchronous forceful send that can just fail
- }
- this.@com.vaadin.terminal.gwt.client.ApplicationConnection::endRequest()();
- }-*/;
-
private void startRequest() {
activeRequests++;
requestStartTime = new Date();
--- /dev/null
+package com.vaadin.terminal.gwt.client;
+
+import com.google.gwt.xhr.client.XMLHttpRequest;
+
+public class SynchronousXHR extends XMLHttpRequest {
+
+ protected SynchronousXHR() {
+ }
+
+ public native final void synchronousPost(String uri, String requestData)
+ /*-{
+ try {
+ this.open("POST", uri, false);
+ this.setRequestHeader("Content-Type", "text/plain;charset=utf-8");
+ this.send(requestData);
+ } catch (e) {
+ // No errors are managed as this is synchronous forceful send that can just fail
+ }
+ }-*/;
+
+}