Some user-agents return status code 0 when operating off of file: URLs.
Patch by: bobv
Review by: scottb
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5215 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java b/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java
index 21b4d08..de87a62 100644
--- a/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java
+++ b/user/src/com/google/gwt/core/client/AsyncFragmentLoader.java
@@ -116,7 +116,7 @@
super("HTTP download failed with status " + statusCode);
this.statusCode = statusCode;
}
-
+
public int getStatusCode() {
return statusCode;
}
@@ -169,6 +169,12 @@
private static final String HTTP_GET = "GET";
+ /**
+ * Some UA's like Safari will have a "0" status code when loading from file:
+ * URLs.
+ */
+ private static final int HTTP_STATUS_LOCAL = 0;
+
private static final int HTTP_STATUS_OK = 200;
/**
@@ -365,14 +371,16 @@
public void onReadyStateChange(XMLHttpRequest xhr) {
if (xhr.getReadyState() == XMLHttpRequest.DONE) {
xhr.clearOnReadyStateChange();
- if (xhr.getStatus() == HTTP_STATUS_OK) {
+ if (xhr.getStatus() == HTTP_STATUS_OK
+ || xhr.getStatus() == HTTP_STATUS_LOCAL) {
try {
installCode(xhr.getResponseText());
} catch (RuntimeException e) {
loadErrorHandler.loadFailed(e);
}
} else {
- loadErrorHandler.loadFailed(new HttpDownloadFailure(xhr.getStatus()));
+ loadErrorHandler.loadFailed(new HttpDownloadFailure(
+ xhr.getStatus()));
}
}
}