From 69e7927a966ff16897e94bb38b0fea174bdcd0da Mon Sep 17 00:00:00 2001 From: Fabian Date: Sat, 15 Oct 2016 01:16:18 +0200 Subject: [PATCH] Better request error handling --- src/browser/main.js | 8 ++++++++ src/browser/starter.js | 28 ++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/browser/main.js b/src/browser/main.js index b8a52e5b..948bc2dd 100644 --- a/src/browser/main.js +++ b/src/browser/main.js @@ -633,6 +633,14 @@ { show_progress(e); }); + + emulator.add_listener("download-error", function(e) + { + var el = $("loading"); + el.style.display = "block"; + el.textContent = "Loading " + e.file_name + " failed. Check your connection " + + "and reload the page to try again."; + }); }; /** diff --git a/src/browser/starter.js b/src/browser/starter.js index 2861b2ec..ec5496f5 100644 --- a/src/browser/starter.js +++ b/src/browser/starter.js @@ -355,15 +355,27 @@ function V86Starter(options) }.bind(this), progress: function progress(e) { - starter.emulator_bus.send("download-progress", { - file_index: index, - file_count: total, - file_name: f.url, + if(e.target.status === 200) + { + starter.emulator_bus.send("download-progress", { + file_index: index, + file_count: total, + file_name: f.url, - lengthComputable: e.lengthComputable, - total: e.total || f.size, - loaded: e.loaded, - }); + lengthComputable: e.lengthComputable, + total: e.total || f.size, + loaded: e.loaded, + }); + } + else + { + starter.emulator_bus.send("download-error", { + file_index: index, + file_count: total, + file_name: f.url, + request: e.target, + }); + } }, as_text: f.as_text, });