2024
- v8.2.0
- v7.41.4
- v8.1.0
- v8.0.0
- v7.41.3
- v7.41.2
- v7.41.1
- v7.41.0
- v7.40.0
- v7.39.2
- v7.39.1
- v7.39.0
- v7.38.2
- v7.38.1
- v7.38.0
- v7.37.2
- v7.37.1
2023
- v7.37.0
- v7.36.3
- v7.36.2
- v7.36.1
- v7.36
- v7.35.2
- v7.35.1
- v7.35
- v7.34.1
- v7.34
- v7.33.2
- v7.33.1
- v7.33
- v7.32
- v7.31.1
- v7.31
- v7.30.3
- v7.30.2
- v7.30
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
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:
@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:
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:
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:
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:
- CVE-2024-11110: Inappropriate implementation in Blink
- CVE-2024-11111: Inappropriate implementation in Autofill
- CVE-2024-11112: Use after free in Media
- CVE-2024-11113: Use after free in Accessibility
- CVE-2024-11117: Inappropriate implementation in FileSystem
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 arquivoMANIFEST.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 JavaFXBrowserView
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 URLchrome://extensions/...
. - Corrigido o erro
java.lang.NullPointerException: Cannot invoke "javafx.scene.image.WritableImage.getPixelWriter()" because "this.image" is null
erro no componente JavaFXBrowserView
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.
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.
Inscreva-se para receber notificações sobre os lançamentos mais recentes.