Preservando caracteres de nova linha em dados: URI de texto

Eu tenho um botão na minha extensão que aciona o seguinte código:

chrome.tabs.create({url: 'data:text;base64,'+btoa(data), active:false});

Isso dispara um download da minha string (dados), como eu esperava. Infelizmente, parece estar retirando os caracteres da nova linha.

Eu tentei outros métodos de codificação, incluindo utf-8 eoencodeUri() função. Eu também tentei mudar o mimetype paradata:text/plain, mas isso simplesmente é aberto em uma nova guia (com os caracteres de nova linha corretos) em vez de fazer o download.

Existe uma maneira de codificar meu texto para que os caracteres de nova linha sejam preservados? Caso contrário, existe um método diferente para acionar downloads de arquivos no navegador?

editar

Eu descobri que as novas linhas aparecem em alguns editores de texto. Anteriormente, eu estava usando o bloco de notas, que não reconhecia os caracteres de nova linha do chrome, mas meu outro editor de texto (notepad ++) parece reconhecê-los

questionAnswers(2)

yourAnswerToTheQuestion