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.
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étodoBrowserPreferences.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.
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.