Repository navigation
fix: keep baking html5 clips while their tab is in the background - #281
Merged
Merged
Conversation
github-actions Bot
pushed a commit
that referenced
this pull request
Oct 30, 2026
## [2.30.1](v2.30.0...v2.30.1) (2026-10-30) ### Bug Fixes * draw clip filters in the preview as the render applies them ([#265](#265)) ([ac02f9b](ac02f9b)) * draw html5 frames on a software canvas so Firefox keeps their gradients ([#280](#280)) ([d508db8](d508db8)) * **export:** draw export frames into one stencil target so Firefox keeps masked content ([#278](#278)) ([f431c6b](f431c6b)) * **export:** tag browser exports as limited range so Safari's whites stay white ([#277](#277)) ([c6150eb](c6150eb)) * keep a frame's embedded images when Safari draws an html5 clip ([#279](#279)) ([5154007](5154007)) * keep baking html5 clips while their tab is in the background ([#281](#281)) ([e1fa158](e1fa158))
|
🎉 This PR is included in version 2.30.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This was referenced Oct 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An html5 clip's bake all but stops in a background tab. On a hidden page, browsers stop animation frames and hold timers back for a second or more. The bake yields between frames on
requestAnimationFrame, with a timer as the fallback, and starts each queued bake onsetTimeout(0). On an emulated hidden page in Chrome (requestAnimationFramenever fires, timers held 1 s), a 374-frame bake took 173.5 s. With this change it takes 4.6 s.nextTask()resolves on a timer while the page is visible, and on aMessageChannelmessage while it's hidden, because messages aren't held back.nextFrame()and the bake queue use it on hidden pages. Visible pages behave as before.Once a message answers at once, a bake polling for room in the shared in-flight window would spin a hidden page. So it now waits for any bake's frame to land, on any page.
Verify:
npm run verify:ci. Then open an edit with an html5 clip, switch to another tab while it prepares, and come back after a few seconds: preparing has finished.Risk: a background tab now bakes at full speed, using the CPU and memory a visible one would.
Independent of #279 and #280: it merges cleanly with them, and passes with them.