Publicado em 14 de setembro de 2017

JxBrowser 6.15

Vamos direto ao assunto: O Chromium 60.0.3112.113 está implementado no JxBrowser 6.15!

A nova versão também inclui algumas novas funcionalidades interessantes e melhorias importantes. Aqui está um registro detalhado do que mudou:

Chromium 60

O motor Chromium foi atualizado para a versão 60.0.3112.113. Isso significa que o suporte ao WebGL 2.0 foi ativado automaticamente.

Devido à atualização do motor Chromium, a lista de plataformas suportadas também foi alterada. Há algum tempo, a equipa do Chromium anunciou que iria encerrar o suporte para o Google Chrome no Linux de 32 bits, Ubuntu Precise (12.04) e Debian 7 ( wheezy) no início de março de 2016.

Com a atualização do Chromium para a versão 60, deixamos de suportar o Ubuntu Precise (12.04), Debian 7 (wheezy) de 32 bits e de 64 bits, bem como todas as distribuições Linux de 32 bits. Atualmente, o JxBrowser suporta apenas Linux de 64 bits.

DOMNode.getXPath()

O método DOMNode.getXPath() que permite obter XPath para um dado DOMNode foi implementado. A utilização é bastante simples:

browser.addLoadListener(new LoadAdapter() {
    @Override
    public void onFinishLoadingFrame(FinishLoadingEvent event) {
        DOMDocument document = event.getBrowser().getDocument();
        DOMNode root = document.findElement(By.id("root"));
        System.out.println(root.getXPath());
    }
});
browser.loadHTML("<html><body><div id='root'></div></body></html>");

Este código de exemplo produz a seguinte saída no console:

/html/body/div[@id="root"]

Browser.setUserAgent(String userAgent)

O método Browser.setUserAgent(String userAgent) foi adicionado. Ele permite alterar a string do agente do usuário em tempo de execução sem recriar a instância do browser.

browser.setUserAgent("My new user agent");

Browser.setAcceptLanguage(String acceptLanguage)

O método Browser.setAcceptLanguage(String acceptLanguage) foi adicionado. Ele permite alterar a string de idiomas aceita em tempo de execução.

ProxyService

Uma funcionalidade há muito esperada que permite modificar as definições de proxy em tempo de execução agora está disponível no JxBrowser. Agora, você pode alterar as configurações de proxy em tempo de execução para uma instância específica de BrowserContext. A nova configuração do proxy será aplicada automaticamente a todas as instâncias Browser associadas ao BrowserContext.

O exemplo seguinte demonstra como utilizar a nova API:

...
BrowserContext browserContext = browser.getContext();
ProxyService proxyService = browserContext.getProxyService();
proxyService.setProxyConfig(new CustomProxyConfig("http=foopy:80"));

<input> accept attribute

Foi adicionado o método FileChooserParams.getAcceptableExtensions(). Este método devolve o valor do atributo HTML <input> accept. A implementação padrão da interface DialogHandler para JavaFX e Swing foi atualizada, portanto, eles suportam este atributo, e filtram os arquivos no diálogo de acordo com as extensões dadas.

Toque para ampliar

O seletor --disable-pinch agora pode ser utilizado para desativar a função “pinch to zoom” no macOS quando se utiliza o trackpad. Esta funcionalidade é suportada apenas pelo JxBrowser. O Google Chrome não permite desativar a função de pinça para fazer zoom no macOS quando se utiliza o trackpad.

Melhorias

  • O tempo de inicialização no Windows está reduzido.
  • As mensagens de log extra impressas na saída do console no macOS, mesmo quando o log está desativado, foram removidas.

Problemas corrigidos

  • Listener de eventos de mouse JavaScript que recebe um botão de mouse incorreto.
  • O método DialogHandler.onBeforeUnload() não sendo invocado quando se descarta o Browser.
  • A instância padrão do BrowserContext sempre cria diretórios vazios no diretório temp do usuário.
  • A exceção RejectedExecutionException sendo lançada a partir da lógica interna.
  • Um problema interno com a desserialização da mensagem OnPaint.

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

Go Top