67437a0c46
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>
35 lines
1.7 KiB
JavaScript
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);
|
|
}
|
|
});
|
|
}
|
|
}); |