WIP: screen recording via chrome.tabCapture

Work in progress for navigation-safe screen recording.

Implemented:
- tabCapture permission in manifest
- Recording handlers in extension background.ts
- Recording endpoints in relay server
- Binary WebSocket streaming for video chunks
- Protocol types for recording messages
- Executor integration

Needs:
- Offscreen document implementation (tabCapture not available in service workers)
- Connect background.ts to offscreen document via messages
- Update manifest for offscreen document

The offscreen.ts/html files are scaffolding for this next step.
This commit is contained in:
Tommy D. Rossi
2026-01-23 16:10:40 +01:00
parent 81988c3305
commit e56e27e5e5
12 changed files with 1303 additions and 4 deletions
+13
View File
@@ -8,6 +8,7 @@ export interface TabInfo {
errorText?: string
pinnedCount?: number
attachOrder?: number
isRecording?: boolean
}
export interface ExtensionState {
@@ -16,3 +17,15 @@ export interface ExtensionState {
currentTabId: number | undefined
errorText: string | undefined
}
/**
* Recording state - kept separate from store since MediaRecorder/MediaStream can't be serialized.
* Note: MediaRecorder and MediaStream types are available in the extension's browser context.
*/
export interface RecordingInfo {
tabId: number
startedAt: number
recorder: any // MediaRecorder - using any to avoid DOM type dependency
stream: any // MediaStream - using any to avoid DOM type dependency
mimeType: string
}