|
|
|
@ -3,8 +3,10 @@ package com.fr.design.jxbrowser;
|
|
|
|
|
import com.fr.design.DesignerEnvManager; |
|
|
|
|
import com.fr.design.ui.ModernUIConstants; |
|
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
|
import com.fr.stable.CommonUtils; |
|
|
|
|
import com.fr.value.ClearableLazyValue; |
|
|
|
|
import com.fr.web.struct.AssembleComponent; |
|
|
|
|
import com.teamdev.jxbrowser.engine.ChromiumBinariesExtractionException; |
|
|
|
|
import com.teamdev.jxbrowser.engine.Engine; |
|
|
|
|
import com.teamdev.jxbrowser.engine.EngineOptions; |
|
|
|
|
import com.teamdev.jxbrowser.engine.RenderingMode; |
|
|
|
@ -12,8 +14,11 @@ import com.teamdev.jxbrowser.engine.event.EngineCrashed;
|
|
|
|
|
import com.teamdev.jxbrowser.net.Network; |
|
|
|
|
import com.teamdev.jxbrowser.net.Scheme; |
|
|
|
|
import com.teamdev.jxbrowser.net.callback.VerifyCertificateCallback; |
|
|
|
|
import com.teamdev.jxbrowser.os.Environment; |
|
|
|
|
import org.jetbrains.annotations.NotNull; |
|
|
|
|
|
|
|
|
|
import java.nio.file.Path; |
|
|
|
|
import java.nio.file.Paths; |
|
|
|
|
import java.util.Collections; |
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
@ -41,7 +46,18 @@ public class JxEngine {
|
|
|
|
|
.addSwitch("--disable-google-traffic") |
|
|
|
|
.addScheme(Scheme.of(ModernUIConstants.EMB_TAG), |
|
|
|
|
new NxInterceptRequestCallback(this::getComponent, this::getParameterMap)); |
|
|
|
|
Engine engine = Engine.newInstance(builder.build()); |
|
|
|
|
Engine engine; |
|
|
|
|
try { |
|
|
|
|
engine = Engine.newInstance(builder.build()); |
|
|
|
|
} catch (ChromiumBinariesExtractionException e) { |
|
|
|
|
Path chromiumDir = Paths.get(System.getProperty("jxbrowser.chromium.dir", Environment.defaultChromiumDir().toString())); |
|
|
|
|
if (CommonUtils.deleteFile(chromiumDir.toFile())) { |
|
|
|
|
FineLoggerFactory.getLogger().warn("[jxbrowser]Retry start engine success after delete chromium dir manually: {}", chromiumDir); |
|
|
|
|
engine = Engine.newInstance(builder.build()); |
|
|
|
|
} else { |
|
|
|
|
throw e; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
engine.on(EngineCrashed.class, (event) -> { |
|
|
|
|
FineLoggerFactory.getLogger().error("jxBrowser engine crashed with exitCode: {}", event.exitCode()); |
|
|
|
|
event.engine().close(); |
|
|
|
|