List icon Conteúdo

Publicado em 12 de maio de 2016

JxBrowser 6.4

Chromium 49

O JxBrowser 6.4 é baseado no Chromium 49.0.2623.110. Isto é bastante interessante, porque além da compatibilidade geral com as mais recentes padrões da Web, este motor Chromium resolve tarefas complicadas, que eram difíceis de realizar em algumas versões anteriores, como a apresentação de conteúdos WebGL em plataformas Linux, e a ativação de fluxos RTP de áudio de entrada. Além disso, no Chromium 49, a UI do Visualizador de PDF foi atualizada. Assim, agora você pode desfrutar do novo aspecto ao apresentar documentos PDF no JxBrowser.

Suporte de plugins

Houve também algumas grandes mudanças. Nesta versão do Chromium, o suporte dos plug-ins NPAPI foi removido. Atualmente, os plug-ins NPAPI como o Microsoft Silverlight, Java Applets, etc., não são suportados. O switch “–enable-npapi” do Chromium também não funciona. Os plug-ins PPAPI, como o Adobe Flash, funcionam bem com esta versão do Chromium. Assim, se você precisar utilizar plug-ins NPAPI, recomendamos que utilize versões do JxBrowser até 6.4.

Planos futuros para o suporte do SO

A equipe do Chromium anunciou que o Chromium 50 deixa de suportar o Windows XP, bem como o Windows Vista e o Mac OS X 10.6, 10.7 e 10.8, uma vez que estas plataformas já não são suportadas pela Microsoft e pela Apple. Portanto, aqui estamos para atualizá-los em relação a estas plataformas, e nós também as deixaremos descansar em paz, quando estivermos prontos com a próxima atualização baseada no Chromium 50 ou superior.

Funções e melhorias

  • O suporte a WebGL no Linux foi adicionado. Nas versões anteriores do JxBrowser, o WebGL não funcionava em plataformas Linux, porque o Chromium não iniciava o processo de GPU para renderizar o conteúdo WebGL. Assim que atualizamos para o Chromium 49, o WebGL começou a funcionar como esperado em plataformas Linux.
  • Nas versões do JxBrowser baseadas no Chromium 43, havia um problema relacionado com o suporte de fluxos RTP de áudio de entrada. Infelizmente, simplesmente não funciona com o Chromium 43. Com as versões do Chromium anteriores a 43 e Chromium 49, este problema não é reproduzível. Assim, agora os fluxos RTP de áudio de entrada são oficialmente suportados no JxBrowser.

Abaixo listamos os problemas que, no entanto, já não põem em risco o seu processo de desenvolvimento.

  • O texto placeholder costumava ficar visível enquanto um usuário já estava digitando numa área de texto. Felizmente, isso não acontece na nova versão.
  • Um surpreendente retângulo preto costumava aparecer em vez de uma barra de deslocamento quando uma janela do Visualizador de PDF era redimensionada. Este problema foi reproduzido apenas no Windows 8.1 e superior. A atualização para o Chromium 49 corrige este problema.
  • Você não verá o erro IllegalArgumentException quando clicar com o botão direito do mouse num Documento PDF.
  • Acabaram-se as falhas nativas no processo de renderização do Chromium, pelo menos quando a sua aplicação encontra um elemento HTML DOM através da string ID com uma aspa simples. O problema estava na funcionalidade DOM do WebKit, que não lidava com essa situação. Aplicamos vários patches ao código-fonte do WebKit que corrigem o problema.
  • Você não tem dispositivos de impressão instalados? Esta não é uma razão para a falha da funcionalidade de impressão no Linux. Agora, se não houver dispositivos de impressão disponíveis, não pedimos ao motor Chromium para imprimir a página Web. Para imprimir a página Web utilizando uma impressora, deve ser instalado pelo menos um dispositivo de impressão.
  • O deadlock na JavaScript-Java Bridge costumava ocorrer em várias circunstâncias. Por exemplo, ao carregar o documento XML e executar o código JavaScript no método ScriptContextListener.onScriptContextCreated(ScriptContextEvent event). Se executarmos código JavaScript num documento XML, este será executado num mundo JavaScript separado. Como resultado, o método ScriptContextListener.onScriptContextCreated(ScriptContextEvent event) é invocado novamente e o código será bloqueado no método sincronizado Browser.executeJavaScriptAndReturnValue(). Para resolver este problema, ativamos o suporte de reentrada na funcionalidade IPC do JxBrowser e modificamos a lógica de sincronização no método Browser.executeJavaScriptAndReturnValue().
  • O BrowserView agora mantém o seu contexto de foco, mesmo depois de mostrar/ocultar o menu de contexto, para que os usuários possam digitar textos em o campo de texto normalmente depois de fechar o menu de contexto. O problema foi resolvido através da atualização das informações de contexto da focagem quando mostra/oculta o menu de contexto.
  • Em ambiente multi-threaded, costumavámos ver o erro "Deadlock in safepoint code" que vinha do código JNI do JxBrowser. Para resolver este problema, nos certificamos de que criamos e acessamos a variável JNIEnv no mesmo segmento.

Nos envie uma mensagem para customer-care@teamdev.com para fazer o download do JxBrowser 6.4.

# JxBrowser 6.4