Compare commits

..

1 Commits

Author SHA1 Message Date
NimBold ceaf8095ac test(startup): isolate main WebView construction for issue 37 2026-08-27 20:46:48 +03:30
3 changed files with 12 additions and 8 deletions
+1
View File
@@ -30,6 +30,7 @@ const child = spawn(executable, [], {
env: {
...process.env,
FIRELINK_SMOKE_TEST: '1',
FIRELINK_SKIP_MAIN_WINDOW: '1',
WEBKIT_DISABLE_COMPOSITING_MODE: '1',
GDK_BACKEND: 'x11',
},
+5 -3
View File
@@ -18561,9 +18561,11 @@ pub fn run() {
.focused(false)
.focusable(false);
}
main_window_builder
.build()
.map_err(|error| format!("failed to create main window: {error}"))?;
if std::env::var_os("FIRELINK_SKIP_MAIN_WINDOW").is_none() {
main_window_builder
.build()
.map_err(|error| format!("failed to create main window: {error}"))?;
}
restore_pending_main_window(app.handle());
#[cfg(any(target_os = "windows", target_os = "linux"))]
+6 -5
View File
@@ -78,11 +78,12 @@ const PropertiesStartupFailure = () => (
const renderMainApp = async () => {
if (!rootElement) return;
// Diagnostic control for Issue #37: keep the native shell and extension
// server alive without loading the application renderer or its startup
// effects. This branch is used only to separate renderer startup from the
// native delayed-crash path.
renderRoot(() => <div data-firelink-startup-control="renderer" />);
// Keep the child entrypoint isolated from the main application module. App
// imports the persistent Zustand stores, whose module initialization issues
// main-window-only IPC commands. Loading it in a Properties child creates a
// second persistence owner and can race the bridge handshake.
const RootComponent = (await import('./App')).default;
renderRoot(RootComponent);
};
const renderPropertiesApp = async () => {