From af169ca5469fb24b094eb39e08b7342e26788018 Mon Sep 17 00:00:00 2001 From: Piotr Kosko Date: Tue, 22 Sep 2015 11:11:55 +0200 Subject: [PATCH] [Download] Callback should be called asynchronously [Verification] Code compiles, application WallpapersHD work fine. Change-Id: I8b1c0206fa11bab5b8f667e449e2079963eacca1 Signed-off-by: Piotr Kosko --- src/download/download_api.js | 55 +++++++++++++++++------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/src/download/download_api.js b/src/download/download_api.js index 8b6c0c46..841423ed 100755 --- a/src/download/download_api.js +++ b/src/download/download_api.js @@ -34,36 +34,33 @@ extension.setMessageListener(function(json) { console.logd('Ignoring unknown callback: ' + result.callbackId); return; } - - if (result.status == 'progress') { - if (callback.onprogress) { - var receivedSize = result.receivedSize; - var totalSize = result.totalSize; - callback.onprogress(result.callbackId, receivedSize, totalSize); - } - } - else if (result.status == 'paused') { - if (callback.onpaused) { - callback.onpaused(result.callbackId); - } - } - else if (result.status == 'canceled') { - if (callback.oncanceled) { - callback.oncanceled(result.callbackId); + setTimeout(function() { + if (result.status == 'progress') { + if (callback.onprogress) { + var receivedSize = result.receivedSize; + var totalSize = result.totalSize; + callback.onprogress(result.callbackId, receivedSize, totalSize); + } + } else if (result.status == 'paused') { + if (callback.onpaused) { + callback.onpaused(result.callbackId); + } + } else if (result.status == 'canceled') { + if (callback.oncanceled) { + callback.oncanceled(result.callbackId); + } + } else if (result.status == 'completed') { + if (callback.oncompleted) { + var fullPath = result.fullPath; + callback.oncompleted(result.callbackId, fullPath); + } + } else if (result.status == 'error') { + if (callback.onfailed) { + callback.onfailed(result.callbackId, + new WebAPIException(result.error)); + } } - } - else if (result.status == 'completed') { - if (callback.oncompleted) { - var fullPath = result.fullPath; - callback.oncompleted(result.callbackId, fullPath); - } - } - else if (result.status == 'error') { - if (callback.onfailed) { - callback.onfailed(result.callbackId, - new WebAPIException(result.error)); - } - } + }, 0); }); function nextCallbackId() { -- 2.34.1