Merge branch 'develop' into 8.1.0-Dev
This commit is contained in:
@@ -117,12 +117,13 @@ class FlashHTTPRequest
|
||||
|
||||
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, function(event)
|
||||
{
|
||||
promise.error(event.errorID);
|
||||
var bytes = Bytes.ofData(cast(urlLoader.data, ByteArray));
|
||||
promise.error(new _HTTPRequestErrorResponse(event.errorID, bytes));
|
||||
});
|
||||
|
||||
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(event)
|
||||
{
|
||||
promise.error(403);
|
||||
promise.error(new _HTTPRequestErrorResponse(403, null));
|
||||
});
|
||||
|
||||
urlLoader.addEventListener(Event.COMPLETE, function(event)
|
||||
@@ -156,12 +157,13 @@ class FlashHTTPRequest
|
||||
|
||||
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, function(event)
|
||||
{
|
||||
promise.error(event.errorID);
|
||||
var responseData = cast(urlLoader.data, String);
|
||||
promise.error(new _HTTPRequestErrorResponse(event.errorID, responseData));
|
||||
});
|
||||
|
||||
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(event)
|
||||
{
|
||||
promise.error(403);
|
||||
promise.error(new _HTTPRequestErrorResponse(403, null));
|
||||
});
|
||||
|
||||
urlLoader.addEventListener(Event.COMPLETE, function(event)
|
||||
@@ -172,4 +174,4 @@ class FlashHTTPRequest
|
||||
urlLoader.load(urlRequest);
|
||||
return promise.future;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -407,29 +407,28 @@ class HTML5HTTPRequest
|
||||
{
|
||||
if (request.readyState != 4) return;
|
||||
|
||||
var bytes = null;
|
||||
if (request.responseType == NONE)
|
||||
{
|
||||
if (request.responseText != null)
|
||||
{
|
||||
bytes = Bytes.ofString(request.responseText);
|
||||
}
|
||||
}
|
||||
else if (request.response != null)
|
||||
{
|
||||
bytes = Bytes.ofData(request.response);
|
||||
}
|
||||
|
||||
if (request.status != null && ((request.status >= 200 && request.status < 400) || (validStatus0 && request.status == 0)))
|
||||
{
|
||||
var bytes = null;
|
||||
|
||||
if (request.responseType == NONE)
|
||||
{
|
||||
if (request.responseText != null)
|
||||
{
|
||||
bytes = Bytes.ofString(request.responseText);
|
||||
}
|
||||
}
|
||||
else if (request.response != null)
|
||||
{
|
||||
bytes = Bytes.ofData(request.response);
|
||||
}
|
||||
|
||||
processResponse();
|
||||
promise.complete(bytes);
|
||||
}
|
||||
else
|
||||
{
|
||||
processResponse();
|
||||
promise.error(request.status);
|
||||
promise.error(new _HTTPRequestErrorResponse(request.status, bytes));
|
||||
}
|
||||
|
||||
request = null;
|
||||
@@ -482,7 +481,7 @@ class HTML5HTTPRequest
|
||||
activeRequests--;
|
||||
processQueue();
|
||||
|
||||
promise.error(event.detail);
|
||||
promise.error(new _HTTPRequestErrorResponse(event.detail, null));
|
||||
}, false);
|
||||
|
||||
image.src = uri;
|
||||
@@ -505,7 +504,7 @@ class HTML5HTTPRequest
|
||||
|
||||
request.onerror = function(event:ErrorEvent)
|
||||
{
|
||||
promise.error(event.message);
|
||||
promise.error(new _HTTPRequestErrorResponse(event.message, null));
|
||||
}
|
||||
|
||||
request.onprogress = function(event:ProgressEvent)
|
||||
@@ -542,7 +541,7 @@ class HTML5HTTPRequest
|
||||
else
|
||||
{
|
||||
processResponse();
|
||||
promise.error(request.status);
|
||||
promise.error(new _HTTPRequestErrorResponse(request.status, request.responseText));
|
||||
}
|
||||
|
||||
request = null;
|
||||
|
||||
@@ -465,7 +465,7 @@ class NativeHTTPRequest
|
||||
private static function localThreadPool_onError(state:{instance:NativeHTTPRequest, promise:Promise<Bytes>, error:String}):Void
|
||||
{
|
||||
var promise:Promise<Bytes> = state.promise;
|
||||
promise.error(state.error);
|
||||
promise.error(new _HTTPRequestErrorResponse(state.error, null));
|
||||
|
||||
var instance = state.instance;
|
||||
|
||||
@@ -576,16 +576,21 @@ class NativeHTTPRequest
|
||||
}
|
||||
else if (instance.bytes != null)
|
||||
{
|
||||
instance.promise.error(instance.bytes.getString(0, instance.bytes.length));
|
||||
var error = instance.bytes.getString(0, instance.bytes.length);
|
||||
var responseData = instance.buildBuffer();
|
||||
instance.promise.error(new _HTTPRequestErrorResponse(error, responseData));
|
||||
}
|
||||
else
|
||||
{
|
||||
instance.promise.error('Status ${state.status}');
|
||||
var error = 'Status ${state.status}';
|
||||
var responseData = instance.buildBuffer();
|
||||
instance.promise.error(new _HTTPRequestErrorResponse(error, responseData));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
instance.promise.error(CURL.strerror(state.result));
|
||||
var error = CURL.strerror(state.result);
|
||||
instance.promise.error(new _HTTPRequestErrorResponse(error, null));
|
||||
}
|
||||
|
||||
if (instance.timeout != null)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -106,7 +106,11 @@ public function load(uri:String = null):Future<T>
|
||||
var future = __backend.loadData(this.uri);
|
||||
|
||||
future.onProgress(promise.progress);
|
||||
future.onError(promise.error);
|
||||
future.onError(function(errorResponse:_HTTPRequestErrorResponse<T>)
|
||||
{
|
||||
responseData = errorResponse.responseData;
|
||||
promise.error(errorResponse.error);
|
||||
});
|
||||
|
||||
future.onComplete(function(bytes)
|
||||
{
|
||||
@@ -140,7 +144,11 @@ public function load(uri:String = null):Future<T>
|
||||
var future = __backend.loadText(this.uri);
|
||||
|
||||
future.onProgress(promise.progress);
|
||||
future.onError(promise.error);
|
||||
future.onError(function(errorResponse:_HTTPRequestErrorResponse<T>)
|
||||
{
|
||||
responseData = errorResponse.responseData;
|
||||
promise.error(errorResponse.error);
|
||||
});
|
||||
|
||||
future.onComplete(function(text)
|
||||
{
|
||||
@@ -152,6 +160,15 @@ public function load(uri:String = null):Future<T>
|
||||
}
|
||||
}
|
||||
|
||||
@:noCompletion class _HTTPRequestErrorResponse<T> {
|
||||
public var error:Dynamic;
|
||||
public var responseData:T;
|
||||
public function new(error:Dynamic, responseData:T) {
|
||||
this.error = error;
|
||||
this.responseData = responseData;
|
||||
}
|
||||
}
|
||||
|
||||
@:noCompletion interface _IHTTPRequest
|
||||
{
|
||||
public var contentType:String;
|
||||
|
||||
@@ -17,7 +17,10 @@ class AIRHelper
|
||||
{
|
||||
case MAC:
|
||||
|
||||
// extension = ".app";
|
||||
if (airTarget == "bundle")
|
||||
{
|
||||
extension = ".app";
|
||||
}
|
||||
|
||||
case IOS:
|
||||
if (project.targetFlags.exists("simulator"))
|
||||
|
||||
@@ -611,7 +611,22 @@ class AssetLibrary
|
||||
}
|
||||
}
|
||||
|
||||
public function unload():Void {}
|
||||
public function unload():Void
|
||||
{
|
||||
#if haxe4
|
||||
cachedBytes.clear();
|
||||
cachedFonts.clear();
|
||||
cachedImages.clear();
|
||||
cachedAudioBuffers.clear();
|
||||
cachedText.clear();
|
||||
#else
|
||||
cachedBytes = new Map<String, Bytes>();
|
||||
cachedFonts = new Map<String, Font>();
|
||||
cachedImages = new Map<String, Image>();
|
||||
cachedText = new Map<String, String>();
|
||||
classTypes = new Map<String, Class<Dynamic>>();
|
||||
#end
|
||||
}
|
||||
|
||||
@:noCompletion private function __assetLoaded(id:String):Void
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user