Publicado em 26 de novembro de 2019

JxBrowser 7.4

O JxBrowser 7.4 vem com uma série de grandes possibilidades: agora você pode incorporar conteúdos de áudio e vídeo da Netflix, Amazon Prime, Spotify e outras plataformas que utilizam a descodificação DRM. E mais: pode incorporar o JxBrowser em aplicações destinadas a dispositivos ARM.

ARM

O JxBrowser 7.4 suporta a arquitetura ARM no Linux de 64 bits. Ele foi testado nos seguintes ambientes:

  • Raspberry Pi 2 (uma CPU ARM Cortex-A7 quad-core de 900 MHz) e AWS (AWS Graviton Processors);
  • Ubuntu 16.04 LTS e 18.04 LTS 64-bit;
  • JDK 8 de 64 bits (nenhuma GUI fornecida pelo JRE), OpenJDK 11 (Swing + JavaFX).

Recursos proprietários

H.264, MP4, AAC

Temos o prazer de anunciar que, a partir desta versão, não é necessário solicitar uma compilação *c separada com os codecs proprietários habilitados para para reproduzir os formatos H.264, MP4 e AAC. Você pode ativar os codecs proprietários, que estão desativados por padrão, através da API, como se mostra abaixo:

Engine engine = Engine.newInstance(
        EngineOptions.newBuilder(renderingMode)
                .enableProprietaryFeature(ProprietaryFeature.AAC)
                .enableProprietaryFeature(ProprietaryFeature.H_264)
                .build());

Os codecs H.264 e AAC são os componentes proprietários. Ao ativar estes codecs, o usuário declara ter conhecimento de que o H.264 e o AAC são componentes proprietários e que deve ter uma licença para utilizá-los. Para mais informações, você pode contatar os titulares das patentes: Via Licensing e MPEG LA. A TeamDev não será responsável pela sua utilização dos codecs H.264 e AAC.

Widevine

Agora você pode ativar o componente proprietário denominado Widevine, que permite reproduzir o conteúdo de áudio/vídeo na Netflix, Amazon Prime, Spotify e conteúdo em outros serviços Web que utilizam o Widevine para distribuir conteúdo.

Por padrão, o componente Widevine está desativado. Utilize o seguinte código para ativá-lo:

Engine engine = Engine.newInstance(
        EngineOptions.newBuilder(renderingMode)
                .enableProprietaryFeature(ProprietaryFeature.WIDEVINE)
                .build());

Widevine é um componente de propriedade da Google, regido pelos seus próprios termos de utilização. Para mais informações, consultar https://www.widevine.com/.

Windows Server 2019

Agora, a biblioteca suporta oficialmente o Windows Server 2019.

Desativar DnD

Por padrão, a função arrastar e soltar é ativada tanto para o Swing quanto para o JavaFX BrowserView. Para desativar a função arrastar e soltar, utilize a seguinte nova API:

browserView.dragAndDrop().disable();

Atributo DOM

A DOM API foi expandida com a nova funcionalidade que permite obter a lista dos nós de atributos do elemento. Por exemplo:

element.attributeNodes().forEach(attribute ->
        System.out.println("name = " + attribute.nodeName()));

Melhorias

  • A classe Navigation foi expandida com o método browser() que permite obter a instância do Browser associada à Navigation.
  • Agora os dicionários do corretor ortográfico são baixados para o diretório de dados do usuário em vez do diretório com os binários do Chromium no Windows. Fizemos isso porque, muitas vezes, o diretório onde os binários do Chromium estão localizados tem acesso só de leitura e o motor não tem permissão para criar novos arquivos nesse diretório. Nesse caso, os dicionários do verificador ortográfico não são carregados e inicializados com êxito, portanto, a verificação ortográfica pode não estar funcionando como esperado. O que, com esta atualização, não é mais um problema.
  • O cursor de arrastamento agora é atualizado quando se arrasta algo para uma aplicação externa no modo de renderização fora de tela.
  • Adiciona o erro NetError.BLOCKED_BY_RESPONSE que ocorre quando a incorporação de frames é proibida por um servidor Web. O código de erro em falta leva ao problema quando o evento FrameLoadFailed não foi ativado para algumas páginas Web.
  • Foi adicionado o suporte da propriedade Document.visibilityState. Agora, se você remover o BrowserView do seu container ou minimizar a janela onde o BrowserView está embutido, esta propriedade mudará seu valor.
  • Os binários do JxBrowser para macOS são assinados e autenticados para cumprir os requisitos do macOS Catalina.
  • A biblioteca cria os links simbólicas para as bibliotecas do sistema no Linux apenas se estas estiverem em falta. Por vezes, as bibliotecas do sistema podem ser atualizadas ou removidas devido a atualizações do sistema. Neste caso, o próximo lançamento falhará devido a aos links simbólicos quebrados. Agora a biblioteca verifica e cria os links simbólicos sempre que é iniciada.
  • Agora o JxBrowser permite lançar exceções a partir dos métodos marcados com a anotação @JsAccessible. Você pode lançar uma exceção ou assert.
  • A ação “Imprimir utilizando a caixa de diálogo do sistema…” foi restaurada na caixa de diálogo Pré-visualização para permitir imprimir a página Web utilizando a caixa de diálogo de impressão do sistema.
  • Agora o JxBrowser permite soltar os arquivos (por exemplo, imagens) no BrowserView com a reação apropriada (por exemplo, carregar e mostrar o arquivo solto).

Problemas corrigidos

  • A perda de memória ao adicionar e remover o componente BrowserView num container Swing ou JavaFX.
  • O encerramento inesperado do processo Chromium após ~2 horas de inatividade no Linux. A causa raiz veio da funcionalidade do atualizador do Chromium que está tentando clonar o processo principal do Chromium após ~2 horas de inatividade. Uma vez que a biblioteca não suporta atualizações automáticas, desativamos esta funcionalidade no Chromium para resolver este problema.
  • A exceção java.lang.UnsatisfiedLinkError no Linux com Java 13. O problema foi causado pela falta de uma dependência.
  • Falha na inicialização do Chromium no macOS configurado para o idioma espanhol devido à falta do pacote de idiomas.
  • A exceção java.lang.NullPointerException ao arrastar os arquivos do sistema de arquivos para o componente Swing BrowserView no macOS com Java 11 e superior.
  • O tempo de expiração do cookie inválido é retornado para um cookie de sessão que não tem um tempo de expiração. Agora, se o cookie não tiver um tempo de expiração, ele retorna Timestamp.NONE.
  • Por padrão, o localizador de texto é retrocedido.
  • O caso de correspondência de pesquisa não está funcionando no PDF.
  • O conteúdo da Web que está sendo apresentado no canto superior esquerdo da tela principal quando um componente Swing BrowserView é incorporado no container JTabbedPane.
  • A falha nativa no motor Chromium ao mover o BrowserView entre várias telas no modo de renderização fora de tela.
  • O problema quando o JavaFX BrowserView no modo de renderização acelerada por hardware começa a separar a janela nativa e encontra o IllegalStateException devido à falta do processo principal do Chromium.
  • Alguns listeners de teclado gerados através do Angular não processam eventos de teclado no modo de renderização fora de tela.

API obsoleta

A funcionalidade CertificateErrorCallback que permite ignorar os erros do certificado SSL foi marcada como @deprecated e será removida numa das próximas versões. Ao invés disso, utilize a chamada de retorno VerifyCertificateCallback, onde você pode informar o motor que o certificado SSL inválido é válido e que o motor deve continuar a carregar o recurso.

Baixe o JxBrowser 7.4

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