Pop-up Entrada de arquivo na extensão do Chrome

Desejo que o usuário possa fazer upload de arquivos de texto como entrada através dobrowserAction pop-up para a minha extensão, mas tive um problema.

Eu tenho usado um ocultoinput tag, que aciono comclick() quando o usuário clica no botão de upload de arquivo. A caixa de diálogo do navegador de arquivos é aberta e tudo parece funcionar bem, até o próprio pop-up fechar. E por causa da 'página da web' que contém oinput fechamento de tag, ochange evento nunca é acionado.

Como a extensão já possui um script em segundo plano para preencher o pop-up com dados persistentes, achei que poderia criar oinput no script em segundo plano e acionareste com.click() quando o usuário clica no botão de upload de arquivo no pop-up.

Mas, mesmo que o evento click seja acionado para oinput no script em segundo plano, a caixa de diálogo do navegador de arquivos não é aberta.

Eu acho que o motivo disso é que o Chrome não permite que a entrada do arquivo seja acionada programaticamente, a menos que seja por meio de uma ação do usuário, mas não tenho certeza. Foi assim que tentei;

popup.js

//Button in popup which should open file broswer dialog
//when clicked
browseBtn.addEventListener('click', function() {
    chrome.runtime.sendMessage({msg: 'file_input'});
}

background.js

var fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.accept = 'text/*';

fileInput.addEventListener('click', function(e) {
    console.log('fileInput clicked');
}, false);

fileInput.addEventListener('change', function(e) {
    console.log('fileInput changed');
    console.log(this.files);
}, false);

chrome.runtime.onMessage.addListener(function(e) {
    if(e.msg === 'file_input')
        fileInput.click();
});

Eu sei que oclick evento é acionado porquefileInput clicked está logado. Mas, a caixa de diálogo do navegador de arquivos não abre.

Eu também tentei uma variação desse código usandochrome.extension.getBackgroundPage() ligar diretamentefileInput.click(). Novamente,click evento foi disparado, mas a caixa de diálogo não foi aberta.

Minha pergunta é; existe uma maneira de permitir que o script em segundo plano acione o arquivoinput abrir a caixa de diálogo do navegador de arquivos? Essa seria a melhor solução, porque permitiria que a extensão extraísse os dados do arquivo especificado, mesmo que o pop-up fosse fechado de alguma forma.

Caso contrário, existe uma maneira de evitar que o pop-up seja fechado quando a caixa de diálogo do navegador de arquivos for aberta? Pelo que encontrei, usando o ocultoinput A tag deveria ser uma solução alternativa e funciona em alguns casos, mas não para todos os usuários.

Por exemplo, consegui fazer upload de arquivos sem que o pop-up fosse fechado no Chrome, Windows 7. Mas, no Chromium, Ubuntu 14.04, o pop-up fecha no instante em que a caixa de diálogo do navegador de arquivos é aberta.

Qualquer ajuda é apreciada.

questionAnswers(1)

yourAnswerToTheQuestion