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