-
Notifications
You must be signed in to change notification settings - Fork 0
Feature/mv3 canvas worker cleanup rebased #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Caution Review failedThe pull request is closed. WalkthroughThis pull request introduces a pluggable image bitmap processing system for rrweb, replacing worker-based canvas image processing with a modular inline and worker processor pattern. The system includes new processor factories, integration with the record pipeline via optional configuration, and supporting updates to test timeouts and type definitions for cross-origin iframe handling. Changes
Sequence DiagramsequenceDiagram
participant Recorder as Record Function
participant CanvasManager
participant Processor as Image Processor
participant Worker as (Optional) Worker
rect rgb(200, 220, 255)
Note over Recorder,CanvasManager: NEW: Pluggable Processor Pattern
Recorder->>CanvasManager: Initialize with imageBitmapProcessor option
CanvasManager->>CanvasManager: Set default inline processor if not provided
end
rect rgb(200, 220, 255)
Note over CanvasManager,Processor: Canvas Snapshot Processing
CanvasManager->>CanvasManager: Collect canvases (including shadow roots)
CanvasManager->>CanvasManager: Warm up WebGL context if needed
CanvasManager->>CanvasManager: Create ImageBitmap from canvas
CanvasManager->>Processor: Process bitmap to data URL
end
alt Inline Processor
Processor->>Processor: Convert to OffscreenCanvas
Processor->>Processor: Draw bitmap, check for changes
Processor-->>CanvasManager: Return base64 data URL
else Worker Processor
Processor->>Worker: Post bitmap with request ID
Worker->>Worker: Process via worker message handler
Worker-->>Processor: Post response with data URL
Processor-->>CanvasManager: Return base64 data URL
end
rect rgb(200, 220, 255)
Note over CanvasManager: Emit Mutation
CanvasManager->>CanvasManager: Create mutation with data URL
CanvasManager->>CanvasManager: Emit canvas redraw event
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes
Poem
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (10)
Comment |
Summary by CodeRabbit
New Features
Improvements