v6.0.1-beta.1

This commit is contained in:
2026-07-16 23:58:33 -04:00
3 changed files with 36 additions and 2 deletions
+7
View File
@@ -733,6 +733,13 @@ function getRememberedSpeed(video) {
var videoSpeed = tc.settings.speeds[sourceKey];
if (isValidSpeed(videoSpeed)) return videoSpeed;
}
// No per-source entry yet — fall back to the most recently used speed.
// This ensures e.g. YouTube Shorts carry the user's chosen speed to the
// next Short even when that exact source URL hasn't been visited before.
if (isValidSpeed(tc.settings.lastSpeed)) {
return tc.settings.lastSpeed;
}
return null;
}
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Speeder",
"short_name": "Speeder",
"version": "6.0.0",
"version": "6.0.1",
"manifest_version": 2,
"description": "Speed up, slow down, advance and rewind HTML5 audio/video with shortcuts (New and improved version of \"Video Speed Controller\")",
"homepage_url": "https://github.com/SoPat712/speeder",
+28 -1
View File
@@ -72,7 +72,7 @@ describe("durable playback-speed intent", () => {
expect(window.tc.settings.rememberSpeed).toBe(true);
});
it("does not seed a brand-new Short from unrelated global lastSpeed", async () => {
it("seeds a brand-new Short from lastSpeed when remember is active", async () => {
bootInject(
{ lastSpeed: 1.8 },
"https://www.youtube.com/shorts/new-source"
@@ -80,6 +80,33 @@ describe("durable playback-speed intent", () => {
const video = await createVideo();
expect(window.tc.settings.rememberSpeed).toBe(true);
expect(window.getRememberedSpeed(video)).toBe(1.8);
expect(video.playbackRate).toBe(1.8);
});
it("prefers per-source speed over lastSpeed fallback", async () => {
bootInject(
{ lastSpeed: 2.0, rememberSpeed: true },
"https://example.org/watch",
{
rememberedSpeeds: {
"https://example.org/a.mp4": { speed: 1.4, updatedAt: 100 }
}
}
);
const video = await createVideo();
expect(window.getRememberedSpeed(video)).toBe(1.4);
expect(video.playbackRate).toBe(1.4);
});
it("does not fall back to lastSpeed when remember is off", async () => {
bootInject(
{ lastSpeed: 1.8, rememberSpeed: false },
"https://example.org/watch"
);
const video = await createVideo();
expect(window.getRememberedSpeed(video)).toBeNull();
expect(video.playbackRate).toBe(1);
});