Publicado em 12 de dezembro de 2017
JxBrowser 6.18
Temos o prazer de anunciar que a versão 6.18 do JxBrowser já está disponível para download. Nesta versão, nos concentramos nas funcionalidades, reforçando a segurança de navegação dos usuários. A versão também contém várias outras funcionalidades e melhorias solicitadas.
Autenticação U2F
Nesta versão, activamos o suporte da norma de autenticação U2F. Não é necessário configurar a biblioteca ou a aplicação Java para poder autenticar utilizando a norma U2F. Note que o registro de dispositivos U2F não é suportado neste momento. Você pode registrar o seu dispositivo U2F no Google Chrome ou em outra aplicação do navegador Web e, em seguida, utilizá-lo no JxBrowser para autenticação.
CacheStorage.clearHttpAuthenticationCache()
A API foi expandida com uma nova funcionalidade que permite limpar o cache HTTP Auth. O código seguinte demonstra como utilizar esta nova funcionalidade:
browser.getCacheStorage().
clearHttpAuthenticationCache(new Callback() {
@Override
public void invoke () {
System.out.println("O cache de autenticação HTTP foi limpo");
}
});
Encriptação de cookies
O JxBrowser não encripta cookies por padrão. Para ativar a encriptação de cookies, utilize a opção --enable-cookie-encryption
Chromium switcher.
O JxBrowser utiliza as rotinas de encriptação de cookies do Chromium, portanto, utiliza a mesma forma de armazenar cookies que o Chromium.
No Linux, para encriptar os cookies, o JxBrowser utiliza o GNOME Keyring ou KWallet. Embora o Chromium escolha automaticamente qual a loja a utilizar, a loja a utilizar também pode ser especificada com um argumento de linha de comandos:
--password-store=gnome
(para usar o GNOME Keyring)--password-store=kwallet
(para usar KWallet)
No Windows, para encriptar cookies, o JxBrowser utiliza apenas a DPAPI. Atualmente, não existem alternativas.
No macOS, o JxBrowser utiliza a chave privada armazenada na aplicação Keychain para encriptar cookies com encriptação AES.
Procurar texto assíncrono
Nas versões anteriores, não havia forma de cancelar a pesquisa atual até esta estar concluída. Nesta versão, expandimos a API com uma nova funcionalidade que permite realizar uma pesquisa de texto na página Web carregada e poder cancelá-la a qualquer momento.
O exemplo seguinte demonstra como utilizar esta nova API:
SearchParams request = new SearchParams("Text to find");
browser.findText(request, new SearchResultCallback() {
@Override
public void onResultReceived (SearchResult result){
// Se a pesquisa tiver sido concluída, obtenha o número de correspondências.
if (result.isCompleted()) {
int numberOfMatches = result.getNumberOfMatches();
}
// caso contrário - cancele a pesquisa.
else {
browser.stopFindingText(StopFindAction.CLEAR_SELECTION);
}
}
});
Suporte a Java 9
Agora, o JxBrowser pode ser utilizado em aplicações Java desktop que estão sendo executadas no JRE 9.
Note que o suporte de Java 9 tem várias limitações:
- O JxBrowser suporta apenas aplicações Java 9 que não utilizam o Java Platform Module System. O suporte do sistema Module será adicionado numa das próximas versões.
- O JxBrowser não suporta SWT+Java 9.
- O JxBrowser suporta apenas os parâmetros padrões da JVM. Se você modificar os valores padrões, por exemplo,
"--illegal-access=deny"
em vez do padrão"--illegal-access=permit"
, dos parâmetros VM, então a biblioteca pode não funcionar no JRE 9.
O resto da funcionalidade do JxBrowser deve estar funcionando da mesma forma que no JRE 6, 7 e 8.
Problemas corrigidos
- A exceção
"IllegalStateException: HTML document is not available"
, lançada as vezes quando uma nova página Web é carregada. O crash nativo ao descartar a instânciaBrowser
enquanto há um trabalho de impressão ativo. Agora, os trabalhos de impressão pendentes serão cancelados quando a instânciaBrowser
, que iniciou a impressão, for eliminada. - A falha nativa esporádica no macOS e no Windows ao usar as instâncias do
Browser
em ambiente multi-threaded. - O problema com uma linha branca de um único pixel à direita e na parte inferior de um frame Java executado no modo tela cheia no Linux.
- A falha nativa no processo de renderização do Chromium que ocorre ao destruir a instância JSContext no ambiente Java multi-threaded.
- A falha nativa no processo principal do Chromium na plataforma Linux com os dispositivos GPU AMD Radeon e nVIDIA GeForce quando a aplicação JavaFX está sendo executada.
- A passagem de um certificado SSL de cliente personalizado para o Chromium não tem quaisquer efeitos, a menos que o certificado esteja registrado no SO.
Melhorias
- Os arquivos binários do Chromium foram assinados com carimbo de data/hora. Em compilações anteriores, os arquivos binários eram assinados com o certificado TeamDev, que é válido até 25 de abril de 2018. O carimbo de data/hora não foi utilizado durante a assinatura, portanto, a assinatura será inválida a partir do dia seguinte.
- A correção que resolve a vulnerabilidade CVE-2017-5124 do Chromium (Chromium 62) foi portada para o Chromium 60 utilizado no JxBrowser 6.18.
- Também melhoramos o desempenho ao encontrar texto com o mesmo request de pesquisa na página Web carregada várias vezes.
Nos envie uma mensagem para customer-care@teamdev.com para fazer o download do JxBrowser 6.18.
Siga @JxBrowserTeam para obter todas as atualizações da biblioteca.
Se inscreva na nossa RSS feed para obter atualizações instantâneas sobre os novos lançamentos.