Publicado em 17 de maio de 2024
JxBrowser 7.39.0
Chromium 124.0.6367.221
Atualizamos o Chromium para uma versão mais recente, que introduz correções de segurança para vulnerabilidades que têm exploits conhecidos:
- CVE-2024-4761: Out of bounds write in V8
- CVE-2024-4947: Type Confusion in V8
- CVE-2024-4671: Use after free in Visuals
Para obter a lista completa de correções e melhorias do Chromium na versão 124.0.6367.221
, por favor visite as publicações no blog do produto para as seguintes versões:
Alterações que geram incompatibilidade
Nesta versão, removemos os métodos Scaling.fitToPage()
e Scaling.fitToPaper()
. Esses métodos eram úteis apenas ao imprimir um arquivo PDF com uma impressora do sistema. Quando imprimindo uma página HTML ou utilizando a impressora PDF embutida, os métodos não tinham efeito, confundindo os desenvolvedores.
Em vez disso, introduzimos um novo método Fit.fit(), que está disponível apenas para a impressão de arquivos PDF com impressoras do sistema.
Aqui está como você teria implementado o callback PrintPdfCallback
anteriormente:
browser.set(PrintPdfCallback.class, (params, tell) -> {
SystemPrinter<PdfSettings> printer = params.printers().list().get(0);
PdfSettings settings = printer.printJob().settings();
settings.scaling(Scaling.fitToPage());
...
tell.proceed(printer);
});
Aqui está como o PrintPdfCallback
deve ser no JxBrowser 7.39.0:
browser.set(PrintPdfCallback.class, (params, tell) -> {
SystemPrinter<PdfSettings> printer = params.printers().list().get(0);
PdfSettings settings = printer.printJob().settings();
settings.fit(Fit.FIT_TO_PAGE);
...
tell.proceed(printer);
});
Entrada de teclado nativa
No modo de renderização fora da tela, qualquer tecla pressionada por um usuário percorre um longo caminho antes de chegar à página web. Um sistema operacional despacha o evento de teclado para a interface do usuário em Java, que o passa para o JxBrowser, que o encaminha para o Chromium, que o entrega à página web.
Em cada fase deste percurso, o evento de teclado é convertido de uma estrutura de dados para outra. E como diferentes subsistemas de teclado e suas estruturas de dados não correspondem exatamente, os dados do evento podem ser perdidos ou interpretados incorretamente. Isso significa que uma interação de teclado no JxBrowser pode produzir um evento JavaScript diferente do que a mesma interação no Chromium.
No JxBrowser 7.39.0, introduzimos um recurso experimental que encaminha diretamente eventos de teclado do sistema operacional para o Chromium. Dessa forma, os eventos JavaScript gerados no JxBrowser devem sempre coincidir com aqueles no Chromium.
Para ativar o recurso, use a propriedade do sistema:
System.setProperty("jxbrowser.use.native.keyboard.input", "true");
Por favor, note que IME ainda não funciona na entrada de teclado nativa.
Melhorias de Qualidade
- O conteúdo da web agora é renderizado corretamente no
TabPane
no JavaFX. - Agora, não são mais passados objetos JS duplicados como parâmetros para
JsFunctionCallback
. - O único cenário suportado para o parâmetro
--force-device-scale-factor
do Chromium agora é o modo de renderização fora da tela em combinação com Swing e Java 8.
Baixe o JxBrowser 7.39.0
Por favor, compartilhe seu e-mail conosco, e nós lhe enviaremos instruções para download.
Não foi possível enviar o e-mail. Por favor, use o link direto para baixar o JxBrowser.
Se você é um cliente registrado, não precisa fazer nada para usar esta atualização.
Se você deseja avaliar o produto, precisa de uma licença de avaliação.
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.