List icon Conteúdo

Publicado em 27 de novembro de 2024

JxBrowser 8.2.0

Tráfego do Chromium

Alguns dos nossos clientes informaram que o Chromium envia por vezes pedidos inesperados a serviços Web externos. Descobrimos que as funcionalidades do Chromium, como o Google Cloud Messaging, o Translate Ranker, o Extensions Updater, o Safe Browsing, o Spell Checker, o Widevine, etc., fazem pedidos aos serviços Web externos da Google, como https://ssl.gstatic.com, https://clients4.google.com, para funcionarem corretamente.

Compreendemos que qualquer pedido inesperado a um serviço Web externo pode ser tratado como uma ameaça à segurança e deve ser bloqueado.Analisámos todas as funcionalidades do Chromium que enviam pedidos a serviços Web externos e garantimos que tem controlo total sobre eles através da API JxBrowser. As funcionalidades que não pode controlar utilizando a API são desactivadas por predefinição para evitar pedidos inesperados a serviços Web externos.

Em termos desta melhoria, removemos a opção do motor disableChromiumTraffic porque já não é necessária.

Registos Java

Agora é possível injetar instâncias de registos Java em JavaScript e trabalhar com elas no código JavaScript.

Digamos que você tem a seguinte classe Java Record que é anotada com a anotação @JsAccessible para torná-la acessível a partir do JavaScript:

Java
@JsAccessible
public record User(String fullName, String email) {}

É possível criar uma instância deste tipo e injectá-la no código JavaScript como qualquer outro objeto Java:

Java
browser.set(InjectJsCallback.class, params -> {
    JsObject window = params.frame().executeJavaScript("window");
    window.putProperty("user", new User("John Doe", "john.doe@mail.com"));
    return Response.proceed();
});

Agora você pode trabalhar com o user injetado e acessar todos os seus métodos gerados automaticamente no código JavaScript dessa forma:

JavaScript
console.log(user.fullName());
console.log(user.email());

Tipo de conteúdo do menu de contexto

A classe ShowContextMenuCallback.Params foi estendida com o método contentType() que permite obter um melhor entendimento do tipo de conteúdo da página web em que o usuário clicou com o botão direito. Permite-lhe preencher o seu menu de contexto personalizado com os itens apropriados com base no tipo de conteúdo:

Java
browser.set(ShowContextMenuCallback.class, (params, tell) -> {
    var contentType = params.contentType();
    if (contentType.contains(ContextMenuContentType.CONTEXT_MENU_CONTENT_TYPE_COPY)) {
        // Algum texto está selecionado, portanto, você pode adicionar o item “Copiar” ao menu de contexto.
    }
    if (contentType.contains(ContextMenuContentType.CONTEXT_MENU_CONTENT_TYPE_EDITABLE)) {
        // O usuário clicou com o botão direito no conteúdo editável, para que você
        // possa adicionar o item "Colar" ao menu de contexto.
    }
    tell.close();
});

Chromium 131.0.6778.70

Actualizámos o Chromium para uma versão mais recente, que introduz 12 correcções de segurança, incluindo:

Para obter a lista completa de correcções e melhorias do Chromium desde a anterior atualização do Chromium, visite as publicações no blogue do produto para as seguintes versões:

Melhorias de qualidade

  • A biblioteca 7-zip que usamos para extrair os binários do Chromium dos ficheiros JAR do JxBrowser foi actualizada para a versão 24.08.
  • O atributo Implementation-Version com a versão do JxBrowser agora é adicionado ao arquivo MANIFEST.MF dos JARs do JxBrowser com binários do Chromium.
  • Corrigida a quebra do menu suspenso de seleção HTML quando a GPU está desactivada no Windows no modo de renderização acelerada por hardware.
  • Correção da localização incorrecta do menu pendente de seleção HTML no Windows no modo de renderização fora do ecrã.
  • Corrigida a NullPointerException no componente JavaFX BrowserView quando o cursor é alterado no modo de renderização fora da tela.
  • Corrigido o problema quando o JxBrowser não detecta o diretório somente leitura no Linux e tenta extrair os binários do Chromium, causando o erro java.nio.file.FileSystemException.
  • Foi corrigido o problema em que a extensão Adobe Acrobat para Chrome não abria a página de definições da extensão numa nova janela pop-up quando se clicava no botão “Abrir PDF” e depois no botão “Ativar”. Em vez disso, é apresentada a página de erro ERR_ADDRESS_UNREACHABLE porque o JxBrowser não consegue carregar o URL chrome://extensions/....
  • Corrigido o erro java.lang.NullPointerException: Cannot invoke "javafx.scene.image.WritableImage.getPixelWriter()" because "this.image" is null erro no componente JavaFX BrowserView durante a renderização da página web no modo de renderização fora da tela.

Baixe o JxBrowser 8.2.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