List icon Conteúdo

Publicado em 14 de dezembro de 2015

JxBrowser 6.0

Esta página irá guiá-lo através das principais novas funcionalidades e melhorias incluídas no JxBrowser 6.0.

Renderização acelerada por GPU

Além do modo de renderização lightweight padrão (fora de tela), o JxBrowser agora suporta o modo de renderização heavyweight (com janela, acelerado por GPU). A descrição da diferença entre estes dois modos é apresentada a seguir.

No modo de renderização lightweight, o motor Chromium renderiza a página Web fora de tela utilizando a CPU. Uma imagem da página Web é guardada na memória compartilhada. O JxBrowser lê a imagem da memória compartilhada e a apresenta utilizando a API Java Graphics 2D padrão. Esta abordagem funciona muito bem se você precisar de um componente Swing/JavaFX lightweight verdadeiro para apresentação de páginas Web HTML5/JavaScript/CSS modernas.

Para criar uma instância do Browser com modo de renderização lightweight, use o seguinte código:

Browser browser = new Browser(BrowserType.LIGHTWEIGHT);

No modo de renderização heavyweight, que é o modo padrão no JxBrowser 6, incorporamos uma janela nativa no frame Java e configuramos o motor Chromium para renderizar conteúdos nesta janela nativa utilizando a GPU. A renderização acelerada por GPU neste caso funciona muito mais rapidamente em comparação com o modo de renderização lightweight. Neste modo, o desempenho de renderização é o mesmo que no Google Chrome, permitindo a visualização de vídeo em tela cheia a 60 fps.

Para criar uma instância do Browser com modo de renderização heavyweight utilize o seguinte código:

Browser browser = new Browser();
Browser browser = new Browser(BrowserType.HEAVYWEIGHT);

JavaScript-Java bridge

Desempenho

A transferência de dados entre Java e JavaScript agora funciona ~10 vezes mais rápido.

JSArray & JSDictionary

No JxBrowser 6, a API JavaScript-Java Bridge permite transferir matrizes e dicionários do JavaScript para o código Java e vice-versa. O exemplo seguinte demonstra como trabalhar com JSArray:

browser.registerFunction("MyFunction", new BrowserFunction() {
    public JSValue invoke(JSValue... args) {
        // Retorna ['Str', 123, true] array
        List array = new ArrayList();
        array.add("Str");
        array.add(123);
        array.add(true);
        return JSValue.create(array);
    }
});

Proxy API

A API de proxy foi melhorada no JxBrowser 6. Agora ela suporta os protocolos HTTP, HTTPS, FTP, e SOCKS. A seguinte amostra demonstra como trabalhar com a API Proxy atualizada:

String proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80";
String exceptions = "<local>";  // contornar o servidor proxy para páginas web locais
contextParams.setProxyConfig(new CustomProxyConfig(proxyRules, exceptions));

BrowserContextParams contextParams = new BrowserContextParams("chromium-data-dir");
Browser browser = new Browser(new BrowserContext(contextParams));

Entrada CJK

Com o modo heavyweight ativado no Mac OS X e no Windows, o componente JxBrowser agora permite a introdução de dados em CJK, de forma análoga ao Google Chrome. Esta entrada está ativada por padrão.

Exemplo de entrada CJK

Lista completa de alterações e melhorias

  • Foi adicionado o modo de renderização acelerada por GPU.
  • Foi adicionado o suporte do ambiente Citrix.
  • Foi adicionado o suporte do protocolo SOCKS na funcionalidade Proxy.
  • Foi adicionado o suporte de projetos Maven. Veja instruções sobre como utilizar o JxBrowser no projeto Maven.
  • Os tipos JSArray e JSDictionary na API Java Bridge do JavaScript foram adicionados.
  • O desempenho do JavaScript Java Bridge foi melhorado. Agora ele funciona cerca de 10 vezes mais rápido.
  • Foi adicionado o suporte à passagem da string JSON para o lado JavaScript através da JavaScript Java Bridge.
  • O evento NetworkDelegate.onPACScriptError() foi implementado.
  • Foi implementado o suporte de acessibilidade no Windows e no Mac [heavyweight, swing, javafx].
  • Foi adicionado o suporte de entrada CJK no Windows e Mac [heavyweight, swing, javafx].
  • Suporte ao switcher --disable-direct-write do Chromium foi adicionado [heavyweight].
  • Foi implementado o suporte do ambiente SWT [heavyweight, swing, javafx].
  • Corrigido um problema com a falta do cursor Move no Mac [lightweight, swing, javafx].
  • Corrigido o problema com códigos de teclas errados no Mac [lightweight, swing, javafx].
  • Corrigido o problema com nomes de cursor errados no arquivo cursors.properties [lightweight, swing, javafx].
  • Foi corrigido um problema com a localização incorreta do cursor personalizado [lightweight, swing].
  • Corrigido o problema com o alvo incorreto em DOMEventListener.
  • Corrigido o problema quando o vídeo em vimeo.com não funciona.
  • Foi corrigido um problema em que era possível digitar texto quando a tecla Alt estava pressionada [lightweight].
  • Foi corrigido um problema em que a impressão para PDF falhava quando o número de páginas era 0.
  • Foi corrigido um problema em que o fechamento de um pop-up com um documento PDF levava a uma falha [heavyweight, swing, javafx].
  • Corrigido o problema em que o item de menu não era descartado ao clicar no controle BrowserView [heavyweight, swing, javafx].
  • Corrigido o deadlock quando o Browser exibe o diálogo padrão do certificado SSL [heavyweight, swing, javafx].
  • Corrigido o problema quando várias instâncias do Browser não podiam ser configuradas para ter suas próprias definições de proxy.
  • Corrigida a NoSuchMethodException no Mac quando o JxBrowser é usado no Java Applet [heavyweight, lightweight, swing, javafx].
  • Corrigida a NullPointerException no método BrowserPreferences.getDefaultAcceptLanguage().
  • Por padrão, a linguagem da UI do Chromium é configurada de acordo com a linguagem da UI do Java.
  • O atributo Trusted-Library nos arquivos de manifesto JAR foi removido.
  • A geração do arquivo debug.log no Windows foi desativada.
  • Foi adicionado um link simbólico para libcrypto.so.1.0.0 no Linux.
  • Em caso de falha nativa no processo do Chromium no Windows, a biblioteca gera o arquivo jxbrowser-chromium.dmp e o armazena no diretório %localappdata%\JxBrowser, por exemplo, c:\users\<username>\appdata\local\JxBrowser\jxbrowser-chromium.dmp.

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