mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
JBR-2148 JCEF: JBR bundle has invalid app structure
(cherry picked from commitf45f84d7ed) (cherry picked from commitb610a7c4f9)
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user