Publicado em 26 de dezembro de 2019
JxBrowser 7.5
Um brinde a este lançamento próximo das férias! Aqui o que ela traz:
JSON
O JxBrowser 7.5 lhe permite converter objetos JavaScript numa string JSON e obter os objetos JavaScript a partir de uma string JSON. Por exemplo:
Json json = frame.json();
JsObject jsObject = json.parse("{\"one\":1,\"two\":2}");
String jsObjectJson = json.stringify(jsObject);
Favicons dinâmicos
Esta versão expande a funcionalidade que permite obter o favicon da página Web atualmente carregada, que foi introduzida na versão 7.2. Uma vez que algumas páginas Web alteram dinamicamente os seus favicons, decidimos permitir que o JxBrowser receba notificações quando o favicon da página Web carregada é alterado. Aqui está como:
browser.on(FaviconChanged.class, event -> {
Bitmap newFavicon = event.favicon();
});
DOM API
Na versão 7.5, expandimos a DOM API com os seguintes métodos que estavam presentes no JxBrowser 6:
Element.scrollIntoView(AlignTo alignTo)
Node.compareDocumentPosition(Node otherNode)
PID do processo de renderização
Esta versão contém a API RenderProcess
e a funcionalidade que permite obter o PID do processo de renderização
onde o Frame
está sendo executado. Por exemplo:
frame.renderProcess().pid();
Navigation
A classe Navigation
agora possui o método browser()
que permite obter a instância Browser
da instância
Navigation
.
Eventos de navegação
Os eventos NavigationStarted
e NavigationFinished
agora possuem o método isInMainFrame()
que indica se a navegação
está ocorrendo no frame principal ou não.
Endereço IP do UrlRequest
A classe ReceiveHeadersCallback.Params
foi expandida com o método ipAddress()
que permite obter o endereço IP
do UrlRequest
.
Melhorias
- Esta versão tem um desempenho melhor quando se trabalha com objetos DOM e JavaScript.
- Agora, todas as informações sensíveis, como a entrada do teclado e do mouse, senhas, etc., não são impressas no log de depuração.
- A caixa de diálogo Salvar Arquivo, mostrada em
DefaultStartDownloadCallback
, agora é modal para as implementações Swing e JavaFX. - O método
Navigation.loadUrlAndWait()
agora lida com a navegação dentro da página web atualmente carregada (por exemplo, navigations para os # links internos). - Todos os binários do Chromium para Windows 32-bit e 64-bit são assinados com uma assinatura TeamDev válida e autorizada.
Problemas corrigidos
- O erro
IllegalStateException
, ao focar oBrowserView
após remover outroBrowserView
e fechar seuBrowser
no modo de renderização acelerada por hardware. - Bloqueio de thread, ao acessar à funcionalidade durante a renderização ativa (por exemplo, reprodução de vídeo HTML5) na página web carregada no modo de renderização fora de tela.
- O deadlock de thread ao fechar a caixa de diálogo Visualizar Impressão no modo de renderização fora de tela no Windows.
- O erro
IllegalArgumentException
causado por largura e altura negativas, ao redimensionar oBrowserView
no Windows no modo de renderização acelerada por hardware. - A perda de memória, ao fechar as instâncias
Browser
, enquanto seuEngine
ainda está vivo. - A perda de memória, ao remover o componente
BrowserView
do seu container. - A perda de memória no processo de GPU do Chromium no macOS, ao redimensionar o
BrowserView
. A causa principal estava nas portas mach não lançadas em ambos os modos de renderização. Esta perda pode causar a reinicialização do sistema quando todas as portas disponíveis estiverem ocupadas. - Chamada da função
XPathResult.asSnapshotNodes()
o método gera o erroXPathException
quando deveria retornar uma coleção vazia. - O método
Document.frame()
retorna oFrame
errado quando a instânciaDocument
pertence a umIFRAME
. - A chamada de retorno
CanGetCookiesCallback
não está recebendo os cookies esperados de um servidor Web, quando os cabeçalhos HTTP são substituídos emReceiveHeadersCallback
. - O conteúdo da Web é apresentado no canto superior esquerdo da tela principal, quando um componente Swing
BrowserView
é incorporado no containerJTabbedPane
.
Baixe o JxBrowser 7.5
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.