Files
Alta-Proxy-Tool/preload.js
T
peji 67437a0c46 Add Chrome extension cookie bridge for session import
Users logged into Alta in Chrome can now send their session cookie
to the running Electron app via a local HTTP server on port 18247,
eliminating the need for re-authentication.

- main.js: HTTP cookie server with CORS, token, domain validation
- preload.js: onExtensionCookie push-pattern IPC bridge
- renderer.js: handleExtensionCookie sets session, fetches devices
- chrome-extension/: Manifest V3 extension with popup UI
- CLAUDE.md: updated architecture docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 20:58:54 -05:00

35 lines
1.7 KiB
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
// Expose protected methods that allow the renderer process to use
// the ipcRenderer without exposing the entire object
contextBridge.exposeInMainWorld('electronAPI', {
login: (credentials) => ipcRenderer.invoke('api-login', credentials),
getDevices: (params) => ipcRenderer.invoke('api-get-devices', params),
getAuthInfo: (params) => ipcRenderer.invoke('api-get-auth-info', params),
// Profile management
loadProfiles: () => ipcRenderer.invoke('profiles-load'),
saveProfile: (profile) => ipcRenderer.invoke('profiles-save', profile),
getProfile: (profileId) => ipcRenderer.invoke('profiles-get', { profileId }),
deleteProfile: (profileId) => ipcRenderer.invoke('profiles-delete', { profileId }),
updateProfile: (profileId, profile) => ipcRenderer.invoke('profiles-update', { profileId, ...profile }),
// Camera proxy functionality
launchCameraProxy: (params) => ipcRenderer.invoke('camera-proxy-launch', params),
launchCookieCameraProxy: (params) => ipcRenderer.invoke('camera-proxy-cookie-launch', params),
stopCameraProxy: (processId) => ipcRenderer.invoke('camera-proxy-stop', { processId }),
checkCameraProxy: () => ipcRenderer.invoke('camera-proxy-check'),
getCameraProxyVersion: () => ipcRenderer.invoke('camera-proxy-version'),
listActiveCameraProxies: () => ipcRenderer.invoke('camera-proxy-list-active'),
// Extension cookie bridge (push from main process)
onExtensionCookie: (callback) => {
ipcRenderer.on('extension-cookie-received', (event, data) => {
try {
callback(data);
} catch (error) {
console.error('Extension cookie handler error:', error);
}
});
}
});