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 ambiente CFProcessPath é 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 o CertificateErrorCallback 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 para System 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 inicia unaware 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 do Engine.

Problemas corrigidos

  • Falha do Chromium ao carregar about:blank após http://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 do IFRAME 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 evento KeyTyped no modo de renderização acelerada por hardware no Swing.
  • Incorreto KeyboardEvent.location passado para as teclas NumPad, Left e Right 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 o BrowserView incorporado no modo de renderização acelerada por hardware no Linux.
  • JavaFX BrowserView enviando Enter 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.

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
Go Top