List icon Conteúdo

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:

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.

Enviando...
Por favor, verifique sua caixa de entrada.

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.

Obtenha Teste Gratuito de 30 dias