Merge pull request #42 from mozilla/refactor-riff

changed to handle 404 during download, also removing progress listene…
This commit is contained in:
Danny Coates 2017-06-02 14:19:02 -07:00 committed by GitHub
commit 1194b93778
2 changed files with 16 additions and 2 deletions

View File

@ -15,6 +15,8 @@ let download = () => {
progress.innerText = `Progress: ${percentComplete}%`;
if (percentComplete === 100) {
fileReceiver.removeAllListeners('progress');
let finished = document.createElement('p');
finished.innerText = 'Your download has finished.';
li.appendChild(finished);
@ -28,7 +30,13 @@ let download = () => {
}
});
fileReceiver.download().then(([decrypted, fname]) => {
fileReceiver.download()
.catch((err) => {
console.log('The file has expired, or has already been deleted.');
document.getElementById('downloaded_files').removeChild(li);
return;
})
.then(([decrypted, fname]) => {
name.innerText = fname;
let dataView = new DataView(decrypted);
let blob = new Blob([dataView]);

View File

@ -20,6 +20,11 @@ class FileReceiver extends EventEmitter {
};
xhr.onload = function(e) {
if (xhr.status === 404) {
reject(new Error('The file has expired, or has already been deleted.'));
}
let blob = new Blob([this.response]);
let fileReader = new FileReader();
fileReader.onload = function() {
@ -52,7 +57,8 @@ class FileReceiver extends EventEmitter {
true,
['encrypt', 'decrypt']
)
]).then(([fdata, key]) => {
])
.then(([fdata, key]) => {
let salt = this.salt;
return Promise.all([
window.crypto.subtle.decrypt(