Skip to content

fix: prevent keyboard relative speed baseline reset after tab idle#1495

Open
MuizNadeem wants to merge 1 commit intoigrigorik:masterfrom
MuizNadeem:fix/keyboard-baseline-after-background
Open

fix: prevent keyboard relative speed baseline reset after tab idle#1495
MuizNadeem wants to merge 1 commit intoigrigorik:masterfrom
MuizNadeem:fix/keyboard-baseline-after-background

Conversation

@MuizNadeem
Copy link
Copy Markdown

@MuizNadeem MuizNadeem commented Apr 8, 2026

Fixes #1494

Summary

This PR fixes a regression where keyboard relative speed shortcuts (s / d) could apply from a 1.0x baseline after tab backgrounding, instead of from the active/effective remembered speed.

Changes

  • Use remembered non-1.0 speed as baseline for the first relative step when:
    • current playback rate is effectively 1.0, and
    • delta is a typical shortcut step.
  • Treat lifecycle speed restoration as init-like (source: 'init') in media event restore path.
  • Do not persist lastSpeed for source: 'init' updates.

Why

Lifecycle/init reconciliation should restore playback without mutating user-authoritative remembered speed. If lifecycle restore writes lastSpeed, first keyboard relative adjustment can compute from an incorrect 1.0 baseline after idle/background transitions.

Test Plan

  • Added unit test: relative increase uses remembered baseline after idle reset to 1.0.
  • Added unit test: play-event restoration does not overwrite lastSpeed.
  • Manual:
    • Enable rememberSpeed
    • Set speed to 1.8x
    • Background tab and return
    • Press d/s
    • Verify behavior is 1.9x / 1.7x (not 1.1x / 0.9x)

@MuizNadeem
Copy link
Copy Markdown
Author

Hi @igrigorik, could you please review this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Regression: keyboard s/d shortcuts use 1.0x baseline after tab backgrounding

1 participant