mirror of
https://github.com/stablyai/orca.git
synced 2026-11-15 02:17:31 +00:00
* chore: audit preload root comments and track repository coverage * docs: track repository comment audit coverage * chore: keep comment audit tracker local * chore: shorten preload API contract comments --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
55 lines
1.9 KiB
TypeScript
55 lines
1.9 KiB
TypeScript
import { ipcRenderer } from 'electron'
|
|
import { createBrowserClientPageRendererRequests } from './browser-client-page-renderer-requests'
|
|
import { createBrowserFindSubscriptions } from './browser-find-subscriptions'
|
|
import { registerRendererRestartIpcRelays } from './renderer-restart-wiring'
|
|
import { createUpdaterQuitAbortRelay } from '../shared/renderer-restart-preparation'
|
|
import { ORCA_UPDATER_QUIT_AND_INSTALL_ABORTED_EVENT } from '../shared/updater-renderer-events'
|
|
export async function awaitBeforeUnloadCheckpoint(): Promise<void> {
|
|
const result = (await ipcRenderer.invoke('app:await-before-unload-checkpoint')) as {
|
|
ok?: unknown
|
|
}
|
|
if (result?.ok !== true) {
|
|
throw new Error('Failed to persist renderer state before unload.')
|
|
}
|
|
}
|
|
|
|
export const startupDiagnosticsEnabled = process.env.ORCA_STARTUP_DIAGNOSTICS === '1'
|
|
|
|
export function getLinuxDisplayServer(): 'wayland' | 'x11' | null {
|
|
if (process.platform !== 'linux') {
|
|
return null
|
|
}
|
|
if (
|
|
process.env.WAYLAND_DISPLAY ||
|
|
process.env.XDG_SESSION_TYPE?.toLowerCase() === 'wayland' ||
|
|
process.env.ELECTRON_OZONE_PLATFORM_HINT?.toLowerCase() === 'wayland'
|
|
) {
|
|
return 'wayland'
|
|
}
|
|
return process.env.DISPLAY ? 'x11' : null
|
|
}
|
|
|
|
export const browserFindSubscriptions = createBrowserFindSubscriptions()
|
|
export const browserClientPageRendererRequests = createBrowserClientPageRendererRequests({
|
|
ipc: ipcRenderer,
|
|
isTopFrame: () => window.top === window
|
|
})
|
|
let browserFindListenerInstalled = false
|
|
|
|
export function installBrowserFindListener(): void {
|
|
if (browserFindListenerInstalled) {
|
|
return
|
|
}
|
|
ipcRenderer.on('ui:findInBrowserPage', (_event, source: unknown) => {
|
|
browserFindSubscriptions.dispatch(source)
|
|
})
|
|
browserFindListenerInstalled = true
|
|
}
|
|
|
|
export const updaterQuitAbortRelay = createUpdaterQuitAbortRelay(
|
|
window,
|
|
ORCA_UPDATER_QUIT_AND_INSTALL_ABORTED_EVENT
|
|
)
|
|
|
|
registerRendererRestartIpcRelays(ipcRenderer, window, updaterQuitAbortRelay)
|