Publicado em 5 de outubro de 2017

JxBrowser 6.16

O JxBrowser 6.16 inclui uma API DOM expandida, a capacidade de ativar e desativar sugestões de preenchimento automático de formulários e uma forma de fornecer um código de estado HTTP personalizado. Esta versão também suporta duas novas plataformas macOS e Ubuntu.

macOS 10.13 High Sierra

O JxBrowser 6.16 agora suporta oficialmente o macOS 10.13 High Sierra. Os testes efetuados neste SO confirmaram que todas as funções da biblioteca funcionam como esperado.

Ubuntu 17.04 Desktop

Também adicionamos suporte para o Ubuntu 17.04 Desktop. Tudo o que você precisa fazer para rodar o JxBrowser no Ubuntu 17.04 é instalar a biblioteca de sistema libgconf-2.so.4 em falta, requerida pelo Chromium 60, que não está instalada no Ubuntu 17.04 por padrão. O pacote Ubuntu para esta biblioteca é libgconf-2-4:

sudo apt-get install libgconf-2-4

DOMNode.compareDocumentPosition()

O método DOMNode.compareDocumentPosition() permite comparar a posição do nó atual com outro nó na árvore DOM:

browser.addLoadListener(new LoadAdapter() {
    @Override
    public void onFinishLoadingFrame(FinishLoadingEvent event) {
        if (event.isMainFrame()) {
            DOMDocument document = event.getBrowser().getDocument();
            DOMElement sourceNode = document.findElement(By.id("div1"));
            DOMElement targetNode = document.findElement(By.id("div2"));
            DOMNodePosition targetNodePosition = sourceNode.compareDocumentPosition(targetNode);
            System.out.println(targetNodePosition); // FOLLOWING
        }
    }
});

browser.loadHTML("<html>"
                + "<body>"
                + "<div id='div1'></div>"
                + "<div id='div2'></div>"
                + "</body>"
                + "</html>");

DOMDocument.getBaseURI()

O método DOMDocument.getBaseURI() retorna o URI base do documento atual:

browser.addLoadListener(new LoadAdapter() {
    @Override
    public void onFinishLoadingFrame(FinishLoadingEvent event) {
        if (event.isMainFrame()) {
            DOMDocument document = event.getBrowser().getDocument();
            String baseURI = document.getBaseURI();
            System.out.println(baseURI); // https://teamdev.com/
        }
    }
});

browser.loadHTML("<html>"
                + "<head>"
                + "<base href='https://teamdev.com/'>"
                + "</head>"
                + "</html>");

Ativar/desativar sugestões de preenchimento automático de formulários

Agora você pode ativar/desativar a apresentação de um pop-up com sugestões de preenchimento automático de formulários de forma tão simples como:

browser.getContext().getAutofillService().setEnabled(false);

Código de status HTTP personalizado

Agora é possível fornecer um código de status HTTP personalizado com uma resposta que retorna do ProtocolHandler:

URLResponse response = new URLResponse();
response.setStatus(HttpStatus.from(111));

Melhorias

  • A documentação das opções de impressão foi expandida com informações sobre as definições ignoradas ao imprimir para PDF.

Problemas corrigidos

  • O problema com a validação dos arquivos binários quando o JxBrowser está sendo executado duas vezes simultaneamente.
  • Falha nativa no macOS com um sistema de arquivos sensível a maiúsculas e minúsculas ao utilizar determinados locais, por exemplo, zh_cn.
  • Analisar certificados X509 no macOS.
  • NoClassDefFoundError num ambiente OSGi.
  • O problema com a atualização das preferências do browser que impede o disparo de eventos de entrada.

Nos envie uma mensagem para customer-care@teamdev.com para fazer o download do JxBrowser 6.16.

Go Top