Publicado em 15 de dezembro de 2020
JxBrowser 7.12.1
Temos o prazer de anunciar uma atualização com várias correções e melhorias importantes.
Melhorias
A variável de ambiente
CFProcessPath
no macOS agora é ignorada ao iniciar o processo principal do Chromium, impedindo que o Chromium encontre os seus recursos internos, o que resulta numa falha de inicialização. A variável de ambienteCFProcessPath
é usada no macOS para possibilitar o arraste de itens para a dock da aplicação de ícones para processamento. A sua aplicação Java continuará podendo utilizá-la.Nenhum botão
Avançado
agora é apresentado na página de erro que é mostrada quando você carrega uma página Web HTTPS com um certificado SSL inválido. Agora a única maneira de carregar uma página web com um certificado SSL inválido é usar oCertificateErrorCallback
como mostrado abaixo:browser.set(CertificateErrorCallback.class, (params, tell) -> tell.allow());
A propriedade do sistema
jxbrowser.force.dpi.awareness
foi adicionada. A presença desta propriedade diz à biblioteca que o modo de reconhecimento de DPI do processo Java atual deve ser definido programaticamente paraSystem
antes de lançar o processo principal do Chromium.Esta propriedade aborda o problema HiDPI em Java 8u211+. Ao criar uma instância
Engine
antes que o kit de ferramentas UI seja inicializado, os processos Java e Chromium acabam com diferentes modos de reconhecimento de DPI. Isto leva a problemas de renderização em ambientes HiDPI. Isso acontece porque, a partir do 8u211, o Java não impõe nenhum modo de reconhecimento de DPI aos aplicativos via manifesto como antes. Desde o 8u211, o Java iniciaunaware
e o permite que o aplicativo configure o modo de reconhecimento de DPI programaticamente durante a inicialização do kit de ferramentas da interface do usuário.Quando a biblioteca executa o processo Chromium, ela não sabe se um kit de ferramentas de IU é inicializado e se o modo de reconhecimento de DPI está configurado. É importante saber isto para sincronizar os modos entre os processos Java e Chromium. Para contornar o problema, decidimos definir programaticamente o modo de reconhecimento de DPI do Java se esta propriedade estiver definida. Neste caso, não precisamos saber se um conjunto de ferramentas de IU foi inicializado ou não. Podemos simplesmente definir o modo e iniciar o processo do Chromium e o modo de reconhecimento de DPI do Java e do Chromium será o mesmo.
Agora é permitido acessar o
LocalStorage
a partir do JavaScript se a página web foi carregada a partir de um arquivo JAR.Durante a inicialização do
Engine
o Kaspersky mostra um aviso de segurança que “Chromium está tentando obter acesso à webcam”. Atualizamos o fluxo de inicialização para que a funcionalidade da webcam seja inicializada somente quando a página da Web solicitar acesso a ela. Ela permite ignorar o diálogo de aviso durante a inicialização doEngine
.
Problemas corrigidos
- Falha do Chromium ao carregar
about:blank
apóshttp://localhost/any.xml
. - Falha do Chromium ao carregar uma URI de dados para um frame não principal.
- Falha do Chromium ao acessar o documento de conteúdo de um
IFRAME
se o carregamento do conteúdo doIFRAME
tiver sido cancelado. - Falha da JVM ao abrir a conexão RPC no macOS e no Linux.
- Arrastar/selecionar itens dentro de uma página Web faz com que o navegador deixe de responder ou que a JVM falhe no modo de renderização fora de tela no Windows e no Linux.
- Não foram passados modificadores de teclado ao enviar os eventos
MouseMoved
para o Chromium no modo de renderização fora de tela. resultando em nenhum modificador de teclado recebido no lado do JavaScript. - Deadlock entre threads ao acessar o frame principal da página Web atualmente carregada a partir da thread SWT principal no modo de renderização acelerada por hardware no Windows.
- Deadlock entre threads ao acessar a URL da página Web atualmente carregada a partir da thread SWT principal no modo de renderização acelerada por hardware no Windows ao apresentar pop-ups.
- Bloqueio de thread ao acessar cookies do thread principal do JavaFX no modo de renderização acelerada por hardware no
Windows após fechar
javafx.scene.control.TextInputDialog
. - Deadlock de thread ao mostrar/ocultar frequentemente o JavaFX
BrowserView
no modo de renderização acelerada por hardware no Windows. - Códigos de teclas inválidos em JavaScript para as teclas
NumPad
no modo de renderização fora de tela. - Códigos de teclas inválidos em JavaScript para as teclas
Enter
,Tab
,Backspace
ao enviar o eventoKeyTyped
no modo de renderização acelerada por hardware no Swing. - Incorreto
KeyboardEvent.location
passado para as teclasNumPad
,Left
eRight
no modo de renderização fora de tela. - Tamanho e localização dos pop-ups calculados incorretamente quando o DPI não padrão está definido no sistema operacional.
- Não é possível acessar o documento de conteúdo de um
IFRAME
que carrega uma página Web de outro domínio. - Perda de memória no processo de renderização do Chromium ao trabalhar com os objetos DOM e JavaScript nas diferentes páginas Web utilizando a API DOM e JavaScript do JxBrowser.
- A rolagem não funciona depois do SWT
BrowserView
estar oculto no modo de renderização fora de tela. - A janela do Chromium é destruída depois que o JavaFX
Stage
é ocultado com oBrowserView
incorporado no modo de renderização acelerada por hardware no Linux. - JavaFX
BrowserView
enviandoEnter
duas vezes no modo de renderização fora de tela. - Arrastar e soltar entre JavaFX
BrowserView
e outros controles JavaFX não funciona no modo de renderização fora de tela no Linux para JavaFX anterior ao 14. - Arrastar e soltar nas páginas web que utilizam os dados de arrastamento personalizados não funcionam corretamente no modo de renderização fora de tela.
- Arrastar e soltar para links e texto não funciona, quando tentado mais do que uma vez no modo de renderização fora de tela JavaFX.
- JavaFX
BrowserView
preto após ocultar e depois mostrar no modo de renderização fora de tela. - O seletor HTML não funciona no SWT
BrowserView
no modo de renderização fora de tela. - Tamanho incorreto do pop-up que é apresentado depois de ocultar o pop-up anterior.
Baixe o JxBrowser 7.12.1
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.