O download do blob createObjectURL não funciona no Firefox (mas funciona durante a depuração)

Eu tenho um problema estranho, a função abaixo é uma que eu criei com base no que encontrei na rede sobre como criar um Blob no cliente em tempo real com alguns dados binários (passados como um array) e poder fazer o download. Isso funciona de maneira brilhante no Chrome, mas não faz nada no Firefox - A menos que eu depure e percorra o código. Sim, estranhamente, se eu criar um ponto de interrupção dentro da função e passar por ela, o a.click () abrirá a janela de download!

function downloadFile(filename, data) {

    var a = document.createElement('a');
    a.style = "display: none";  
    var blob = new Blob(data, {type: "application/octet-stream"});
    var url = window.URL.createObjectURL(blob);
    a.href = url;
    a.download = filename;
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    window.URL.revokeObjectURL(url);    
}

Alguém pode me ajudar? Isso foi testado usando o Firefox 38.0.5.

questionAnswers(3)

yourAnswerToTheQuestion