mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-11-12 01:00:54 +00:00
* Codex worktree snapshot: startup-cleanup Co-authored-by: Codex * fix(browser): close malformed proxy connections without a reply * feat(browser): embed host browsing in terminal side panels * style(browser): blend compact browser chrome into terminal panels * feat(browser): open terminal links internally with a system browser preference * fix(browser): retain the first terminal link during panel mount replay * fix(browser): release contexts when their split pane closes * style(browser): remove the downloads panel shadow * fix(browser): ignore late downloads after panel closure * fix(browser): mount browser content on terminal auto-open * fix(browser): preserve empty-vault recovery with bookmarks * fix(browser): expose actions for supported terminal types * fix(browser): retain open requests before the panel mounts * fix(browser): align vault actions with supported hosts * fix(browser): share download controls across host contexts * fix(browser): keep vault browser requests on visible sessions * fix(browser): release contexts after workspace detach * fix(browser): enforce WebRTC routing on page contents * fix(browser): skip unsupported sessions in open requests * style(browser): encode glyphs in ASCII-safe source
38 lines
1.9 KiB
JavaScript
38 lines
1.9 KiB
JavaScript
"use strict";
|
|
|
|
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("hostBrowser", Object.freeze({
|
|
snapshot: () => ipcRenderer.invoke("netcatty:host-browser:snapshot"),
|
|
command: (command) => ipcRenderer.invoke("netcatty:host-browser:command", command),
|
|
listBookmarks: () => ipcRenderer.invoke("netcatty:host-browser:bookmarks:list"),
|
|
saveBookmark: (bookmark) => ipcRenderer.invoke("netcatty:host-browser:bookmarks:upsert", bookmark),
|
|
removeBookmark: (id) => ipcRenderer.invoke("netcatty:host-browser:bookmarks:remove", id),
|
|
listDownloads: () => ipcRenderer.invoke("netcatty:host-browser:downloads:list"),
|
|
onDownloadsChanged: (callback) => {
|
|
const listener = (_event, downloads) => callback(downloads);
|
|
ipcRenderer.on("netcatty:host-browser:downloads-changed", listener);
|
|
return () => ipcRenderer.removeListener("netcatty:host-browser:downloads-changed", listener);
|
|
},
|
|
onBookmarksChanged: (callback) => {
|
|
const listener = () => callback();
|
|
ipcRenderer.on("netcatty:host-browser:bookmarks-changed", listener);
|
|
return () => ipcRenderer.removeListener("netcatty:host-browser:bookmarks-changed", listener);
|
|
},
|
|
onSiteIconsChanged: (callback) => {
|
|
const listener = () => callback();
|
|
ipcRenderer.on("netcatty:host-browser:site-icons-changed", listener);
|
|
return () => ipcRenderer.removeListener("netcatty:host-browser:site-icons-changed", listener);
|
|
},
|
|
onShortcut: (callback) => {
|
|
const listener = (_event, shortcut) => callback(shortcut);
|
|
ipcRenderer.on("netcatty:host-browser:shortcut", listener);
|
|
return () => ipcRenderer.removeListener("netcatty:host-browser:shortcut", listener);
|
|
},
|
|
onState: (callback) => {
|
|
const listener = (_event, state) => callback(state);
|
|
ipcRenderer.on("netcatty:host-browser:state", listener);
|
|
return () => ipcRenderer.removeListener("netcatty:host-browser:state", listener);
|
|
},
|
|
}));
|