From eca94a93cd4dc21876d0a7fe4955a5da35d613d0 Mon Sep 17 00:00:00 2001 From: Astro Date: Sat, 13 Jun 2026 00:06:56 +1000 Subject: [PATCH 1/6] fix(021): feed-mode videos keep controls=false after source attach VideoPlayer's attach effect ran video.controls = !prebufferOnly after the JSX controls binding, overwriting feed mode's controls={false}. Extend the 011 suspension to that line and add controls to the effect deps. Adds a native v.redd.it item plus a tiny playable mp4 to the E2E fixture so the previously skipped chromeless and HAVE_CURRENT_DATA tests now execute. Also stubs /api/reddit/search-subreddits and /api/reddit/related in E2E, which still hit upstream and flaked runs with 403/429. Co-Authored-By: Claude Fable 5 --- frontend/src/components/VideoPlayer.jsx | 4 +- frontend/tests/e2e/_helpers.js | 29 +++++++++++ .../tests/e2e/fixtures/subreddit-pics.json | 39 +++++++++++++- frontend/tests/e2e/fixtures/tiny-video.mp4 | Bin 0 -> 1849 bytes issues/021-smoothness-fixes.md | 49 ++++++++++++++++++ 5 files changed, 117 insertions(+), 4 deletions(-) create mode 100644 frontend/tests/e2e/fixtures/tiny-video.mp4 create mode 100644 issues/021-smoothness-fixes.md diff --git a/frontend/src/components/VideoPlayer.jsx b/frontend/src/components/VideoPlayer.jsx index 1c31dbb..7a03ef3 100644 --- a/frontend/src/components/VideoPlayer.jsx +++ b/frontend/src/components/VideoPlayer.jsx @@ -459,7 +459,7 @@ const VideoPlayer = forwardRef(function VideoPlayer( video.muted = shouldStartMuted; video.playsInline = true; video.autoplay = autoPlay && !prebufferOnly; - video.controls = !prebufferOnly; + video.controls = !prebufferOnly && controls; video.poster = posterUrl || ''; if (shouldUseCompanionAudio && companionAudio) { @@ -536,7 +536,7 @@ const VideoPlayer = forwardRef(function VideoPlayer( } cleanupPlayers(); }; - }, [mp4Url, hlsUrl, dashUrl, sanitizedCompanionAudioUrls, hasAudio, sourceKind, posterUrl, autoPlay, loop, prebufferOnly, allowUnmutedAutoplay, preferredMuted, onMutedChange, onDiagnostics, reloadNonce, shouldUseCompanionAudio, directUrlOnly]); + }, [mp4Url, hlsUrl, dashUrl, sanitizedCompanionAudioUrls, hasAudio, sourceKind, posterUrl, autoPlay, loop, prebufferOnly, controls, allowUnmutedAutoplay, preferredMuted, onMutedChange, onDiagnostics, reloadNonce, shouldUseCompanionAudio, directUrlOnly]); if (prebufferOnly) { return