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())); } } }