JBR-2148 JCEF: JBR bundle has invalid app structure

(cherry picked from commit f45f84d7ed)
(cherry picked from commit b610a7c4f9)
This commit is contained in:
Anton Tarasov
2020-02-19 18:23:27 +03:00
committed by jbrbot
parent b136283684
commit a3312a2355

View File

@@ -6,6 +6,8 @@ import org.cef.CefSettings;
import org.cef.handler.CefAppHandlerAdapter;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicBoolean;
/**
@@ -33,7 +35,9 @@ public abstract class JBCefApp {
private static final AtomicBoolean ourInitialized = new AtomicBoolean(false);
private JBCefApp() {
CefApp.startup();
if (!CefApp.startup()) {
throw new RuntimeException("JCEF startup failed!");
}
CefSettings settings = new CefSettings();
settings.windowless_rendering_enabled = false;
settings.log_severity = CefSettings.LogSeverity.LOGSEVERITY_ERROR;
@@ -66,13 +70,32 @@ public abstract class JBCefApp {
private static class JBCefAppMac extends JBCefApp {
@Override
protected String[] applyPlatformSettings(CefSettings settings) {
String JCEF_FRAMEWORKS_PATH = System.getProperty("java.home") + "/Frameworks";
String ALT_CEF_FRAMEWORK_DIR = System.getenv("ALT_CEF_FRAMEWORK_DIR");
String ALT_CEF_BROWSER_SUBPROCESS = System.getenv("ALT_CEF_BROWSER_SUBPROCESS");
if (ALT_CEF_FRAMEWORK_DIR == null || ALT_CEF_BROWSER_SUBPROCESS == null) {
String CONTENTS_PATH = System.getProperty("java.home") + "/..";
if (ALT_CEF_FRAMEWORK_DIR == null) {
ALT_CEF_FRAMEWORK_DIR = CONTENTS_PATH + "/Frameworks/Chromium Embedded Framework.framework";
}
if (ALT_CEF_BROWSER_SUBPROCESS == null) {
ALT_CEF_BROWSER_SUBPROCESS = CONTENTS_PATH + "/Helpers/jcef Helper.app/Contents/MacOS/jcef Helper";
}
}
return new String[] {
"--framework-dir-path=" + JCEF_FRAMEWORKS_PATH + "/Chromium Embedded Framework.framework",
"--browser-subprocess-path=" + JCEF_FRAMEWORKS_PATH + "/jcef Helper.app/Contents/MacOS/jcef Helper",
"--framework-dir-path=" + normalize(ALT_CEF_FRAMEWORK_DIR),
"--browser-subprocess-path=" + normalize(ALT_CEF_BROWSER_SUBPROCESS),
"--disable-in-process-stack-traces"
};
}
// CEF does not accept ".." in path
static String normalize(String path) {
try {
return new File(path).getCanonicalPath();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
private static class JBCefAppWindows extends JBCefApp {