Publicado em 6 de novembro de 2017

JxBrowser 6.17

O JxBrowser 6.17 apresenta um grande número de novas funcionalidades e melhorias.

Sandbox no Windows

Nesta versão, adicionamos o suporte da Sandbox do Chromium nas plataformas Windows. Por padrão, a Sandbox está desativada para manter a compatibilidade com versões anteriores. Para ativar a Sandbox, defina a propriedade jxbrowser.chromium.sandbox System como true antes de criar a primeira instância do Browser. Por exemplo:

System.setProperty("jxbrowser.chromium.sandbox","true");
Browser browser = new Browser();

DOMFrameElement

A interface DOMFrameElement foi introduzida. Agora, você pode converter a instância DOMElement que representa um elemento HTML IFRAME ou FRAME para DOMFrameElement, e acessar a instância DOMDocument do frame fornecido. Por exemplo:

DOMDocument document = browser.getDocument();
DOMElement iframe = document.findElement(By.tagName("iframe"));
if (iframe instanceof DOMFrameElement) {
    DOMFrameElement frameElement = (DOMFrameElement) iframe;
    DOMDocument frameDocument = frameElement.getContentDocument();
    //...
}

Melhorias

A partir desta versão, o JxBrowser suporta intervalos de páginas ao salvar PDF como documento PDF. A impressão de conteúdos parciais também se tornou possível.

Levamos a estabilidade a sério, por isso esta versão pode ostentar uma estabilidade melhorada em ambiente multi-threaded ao descartar a instância Browser, e uma estabilidade melhorada do motor Chromium ao submeter as credenciais de um cartão de crédito numa página web do portal de pagamentos.

E mais algumas melhorias convenientes nesta versão: A implementação do Swing DefaultDialogHandler agora respeita as regras EDT do Swing e desabilita diálogos UI no EDT. A geração do arquivo debug.log no Windows 7 e 8/8.1 foi desativada.

Problemas corrigidos

  • Tela preta e piscamento durante o redimensionamento do BrowserView no modo de renderização heavyweight em plataformas Windows.
  • Exceção IllegalArgumentException lançada ao fornecer um idioma válido através do alternador --lang do Chromium.
  • A inesperada exceção ConcurrentModificationException lançada pela implementação interna NetworkDelegate.
  • A rotação não funciona para drop downs com o modo de renderização lightweight na aplicação JavaFX.
  • A caixa de verificação dupla não funcionando na caixa de diálogo de impressão Swing padrão.
  • O nome da impressora selecionada não sendo aplicado nas implementações padrões da caixa de diálogo de impressão JavaFX e Swing.
  • O código JavaScript window.outerHeight sempre retorna 0 no modo de renderização lightweight.
  • BrowserContext duplicando os diretórios de dados, cache e memória do Chromium quando um caminho relativo é fornecido.
  • Impressão de conteúdo SVG na plataforma Windows. Estava quebrada devido à desativação do Sandbox Chromium. Alguns conteúdos SVG requerem que o Sandbox do Chromium esteja ativado para imprimir corretamente conteúdos SVG.
  • O método Browser.invokeAndWaitFinishLoadingMainFrame() nunca termina se o carregamento falhar.
  • Passar o mouse sobre um cabeçalho data grid redimensionável não altera o cursor.

Suporte a Java 9

Esta versão não inclui suporte para Java 9. Infelizmente, a Oracle removeu a importante funcionalidade sem fornecer quaisquer alternativas. Anteriormente, era possível obter os identificadores de janela nativos para frames Java Swing/JavaFX. Agora, para suportar o modo de renderização heavyweight em Java 9, temos de encontrar uma abordagem completamente nova.

É nisso que estamos trabalhando neste momento. Faremos o nosso melhor para ativar o suporte de Java 9 no JxBrowser assim que possível. Obrigado pela sua paciência.

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

Go Top