Introdução
Instalação
Guias
- Engine
- Profile
- Browser
- BrowserView
- Navegação
- Conteúdo
- DOM
- JavaScript
- Pop-ups
- Diálogos
- Downloads
- Rede
- Cache
- Cookies
- Proxy
- Autenticação
- Plugins
- Impressão
- Senhas
- Perfis de dados do Usuário
- Cartões de Crédito
- Mídia
- Área de transferência
- Zoom
- Corretor Ortográfico
- Implantação
- Chromium
Resolução de Problemas
Chromium
Este guia descreve como trabalhar com a compilação do Chromium utilizada pelo JxBrowser.
Não é necessário instalar o Chromium ou o Google Chrome no ambiente de destino para utilizar o JxBrowser. O JxBrowser utiliza e implementa a sua própria compilação Chromium.
Binários
Os binários do Chromium para cada plataforma suportada estão localizados dentro dos JARs JxBrowser correspondentes:
jxbrowser-win32-7.41.4.jar
– Binários do Chromium para Windows 32-bit.jxbrowser-win64-7.41.4.jar
– Binários do Chromium para Windows 64-bit.jxbrowser-mac-7.41.4.jar
– Binários do Chromium para macOS.jxbrowser-mac-arm-7.41.4.jar
– Binários do Chromium para macOS Apple Silicon.jxbrowser-linux64-7.41.4.jar
– Binários do Chromium para Linux 64-bit.jxbrowser-linux64-arm-7.41.4.jar
– Binários do Chromium para Linux ARM 64-bit.
Localização
Por padrão, o JxBrowser extrai os binários do Chromium para o diretório temp do usuário no Linux e macOS, e para o diretório
AppData\Local\JxBrowser
no Windows.
Eis como alterar o diretório onde o JxBrowser extrairá os binários:
Utilizando a propriedade do sistema
jxbrowser.chromium.dir
.Isso pode ser feito pelo método
System.setProperty()
:JavaKotlinSystem.setProperty("jxbrowser.chromium.dir", "Users/Me/.jxbrowser");
System.setProperty("jxbrowser.chromium.dir", "Users/Me/.jxbrowser")
ou através de um parâmetro da JVM:
-Djxbrowser.chromium.dir="Users/Me/.jxbrowser"
Através do
EngineOptions
ao construir oEngine
:JavaKotlinEngine engine = Engine.newInstance(EngineOptions.newBuilder(...) .chromiumDir("Users/Me/.jxbrowser") .build());
val engine = Engine.newInstance(EngineOptions.newBuilder(...) .chromiumDir("Users/Me/.jxbrowser") .build())
O caminho do diretório pode ser relativo ou absoluto.
O diretório não pode estar localizado numa unidade de rede.
Verificação
Cada versão do JxBrowser é compatível apenas com a mesma versão dos binários. Por exemplo, o JxBrowser 7.41.4.1 não funcionará com os binários do JxBrowser 7.41.4.
Para se certificar de que os binários do Chromium são compatíveis com a versão atual do JxBrowser, a biblioteca verifica os binários.
Extração
Por padrão, o JxBrowser extrai os binários de um arquivo JAR correspondente quando o Engine
é criado pela primeira vez. Se precisar
extrair binários antes, utilize este código:
// Usar o diretório padrão.
ChromiumBinaries.deliverToDefaultDirectory();
// Ou utilize um diretório arbitrário.
ChromiumBinaries.deliverTo(Paths.get("/path/to/binaries"));
Se os binários compatíveis já tiverem sido extraídos, o JxBrowser não os extrairá novamente. Caso contrário, o JxBrowser irá extrair os binários novamente e substituir os arquivos existentes.
Entrega personalizada
A partir do JxBrowser 7.35, os programadores podem obter o controle total do fornecimento de binários Chromium ao ambiente. Esta capacidade destina-se a casos de utilização avançados, como o download de binários da rede ou a utilização de um algoritmo de compressão personalizado.
Para personalizar a entrega, implemente a interface BinariesDelivery
e entregue os binários quando precisar deles:
class SharedDriveDelivery implements BinariesDelivery {
void deliverTo(Path chromiumDir) {
// Pseudocódigo:
// Path downloadedArchive = SharedNetworkDrive.download("jxbrowser-win64.gz");
// Gzip.extract(downloadedArchive, chromiumDir);
}
}
// Utilizar o diretório predefinido.
ChromiumBinaries.deliverToDefaultDirectory(new SharedDriveDelivery());
// Ou use um diretório arbitrário.
ChromiumBinaries.deliverTo(chromiumDir, new SharedDriveDelivery());
Se os binários compatíveis já tiverem sido extraídos, o JxBrowser não chamará a entrega personalizada.
Sandbox
Windows
O JxBrowser suporta o Chromium Sandbox no Windows.
A Sandbox está ativada por padrão, mas você pode desativá-la através da opção Engine
apropriada:
Engine engine = Engine.newInstance(EngineOptions.newBuilder(...)
.disableSandbox()
.build());
val engine = Engine.newInstance(EngineOptions.newBuilder(...)
.disableSandbox()
.build())
Linux e macOS
Atualmente, a Sandbox é suportada apenas na plataforma Windows.