From 7d3f86ded179b85048dbf0681091e94b528cd680 Mon Sep 17 00:00:00 2001 From: Ajay Date: Tue, 16 Aug 2022 16:42:47 -0400 Subject: [PATCH] Fix skipping after paused at zero sometimes not working Affects some autoplay blocking Resolves #1437 --- src/content.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/content.ts b/src/content.ts index 6f104f52..e0af1f34 100644 --- a/src/content.ts +++ b/src/content.ts @@ -639,7 +639,7 @@ function getVirtualTime(): number { (performance.now() - lastKnownVideoTime.preciseTime) / 1000 + lastKnownVideoTime.videoTime : null); if ((lastTimeFromWaitingEvent || !utils.isFirefox()) - && !isSafari() && virtualTime && Math.abs(virtualTime - video.currentTime) < 0.6) { + && !isSafari() && virtualTime && Math.abs(virtualTime - video.currentTime) < 0.6 && video.currentTime !== 0) { return virtualTime; } else { return video.currentTime; @@ -722,6 +722,7 @@ function setupVideoListeners() { switchingVideos = false; let startedWaiting = false; + let lastPausedAtZero = true; video.addEventListener('play', () => { // If it is not the first event, then the only way to get to 0 is if there is a seek event @@ -732,7 +733,7 @@ function setupVideoListeners() { updateVirtualTime(); - if (switchingVideos) { + if (switchingVideos || lastPausedAtZero) { switchingVideos = false; logDebug("Setting switching videos to false"); @@ -740,6 +741,8 @@ function setupVideoListeners() { if (sponsorTimes) startSkipScheduleCheckingForStartSponsors(); } + lastPausedAtZero = false; + // Check if an ad is playing updateAdFlag(); @@ -755,6 +758,7 @@ function setupVideoListeners() { }); video.addEventListener('playing', () => { updateVirtualTime(); + lastPausedAtZero = false; if (startedWaiting) { startedWaiting = false; @@ -789,6 +793,8 @@ function setupVideoListeners() { lastTimeFromWaitingEvent = null; startSponsorSchedule(); + } else if (video.currentTime === 0) { + lastPausedAtZero = true; } }); video.addEventListener('ratechange', () => startSponsorSchedule());