From 3c4d925629c3d1e640a9907099b15eb313bed6d3 Mon Sep 17 00:00:00 2001 From: expntly Date: Sun, 16 Aug 2015 10:32:31 -0700 Subject: [PATCH] add Image.onerror handler so the returned promise gives more control to the caller Stumbled upon a case on iOS 8.0 where Safari fails to create the BLOB URL (plenty of instances of such issue on Google). This change allows the client to handle such errors. --- src/ahdin.factory.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ahdin.factory.js b/src/ahdin.factory.js index 769c7f7..5df81b2 100644 --- a/src/ahdin.factory.js +++ b/src/ahdin.factory.js @@ -30,6 +30,7 @@ var imageDeferred = $q.defer(); var image = new Image(); image.onload = resolveImage; + image.onerror = rejectImage; image.src = blobUtil.createObjectURL(params.sourceFile); return imageDeferred.promise; @@ -37,6 +38,11 @@ imageDeferred.resolve(image); $rootScope.$apply(); } + + function rejectImage(err) { + imageDeferred.reject(err, image); + $rootScope.$apply(); + } } function parseMetadata(image, params) {