fix(electron): load self-signed loopback pages

This commit is contained in:
Bohdan Triapitsyn
2026-08-18 23:10:14 +03:00
parent b754ccbf63
commit 0c5e183c62
4 changed files with 66 additions and 1 deletions
+10
View File
@@ -31,6 +31,7 @@ import {
setLinuxAutostartEnabled,
} from './linux-autostart.mjs';
import { unsupportedAppSpecificOpenError, validateLocalPath } from './path-open-utils.mjs';
import { shouldAllowBrowserPanelCertificateError } from './browser-panel-security.mjs';
import { mintOutsideFileGrant } from '@openchamber/web/server/lib/fs/routes.js';
const execFileAsync = promisify(execFile);
@@ -1186,6 +1187,15 @@ const resolveBrowserPanelContents = (rawId) => {
const hardenBrowserPanelSession = () => {
const panelSession = session.fromPartition(BROWSER_PANEL_PARTITION);
app.on('certificate-error', (event, contents, url, error, _certificate, callback) => {
if (contents.session === panelSession && shouldAllowBrowserPanelCertificateError({ url, error })) {
event.preventDefault();
callback(true);
return;
}
callback(false);
});
panelSession.setPermissionRequestHandler((_contents, permission, callback, details) => {
log.info('[electron] browser panel denied a permission request', {
permission,