diff --git a/src/content.ts b/src/content.ts index a6475dbf..963d36c4 100644 --- a/src/content.ts +++ b/src/content.ts @@ -16,7 +16,7 @@ import * as Chat from "./js-components/chat"; import { SkipButtonControlBar } from "./js-components/skipButtonControlBar"; import { getStartTimeFromUrl } from "./utils/urlParser"; import { findValidElement, getControls, getHashParams, isVisible } from "./utils/pageUtils"; -import { keybindEquals } from "./utils/configUtils"; +import { isSafari, keybindEquals } from "./utils/configUtils"; import { CategoryPill } from "./render/CategoryPill"; import { AnimationUtils } from "./utils/animationUtils"; import { GenericUtils } from "./utils/genericUtils"; @@ -529,7 +529,7 @@ function startSponsorSchedule(includeIntersectingSegments = false, currentTime?: skippingFunction(); } else { const delayTime = timeUntilSponsor * 1000 * (1 / video.playbackRate); - if (delayTime < 300 && utils.isFirefox()) { + if (delayTime < 300 && utils.isFirefox() && !isSafari()) { // For Firefox, use interval instead of timeout near the end to combat imprecise video time const startIntervalTime = performance.now(); const startVideoTime = video.currentTime; diff --git a/src/utils/configUtils.ts b/src/utils/configUtils.ts index e0939858..db957caa 100644 --- a/src/utils/configUtils.ts +++ b/src/utils/configUtils.ts @@ -5,6 +5,10 @@ export function showDonationLink(): boolean { return navigator.vendor !== "Apple Computer, Inc." && Config.config.showDonationLink; } +export function isSafari(): boolean { + return navigator.vendor === "Apple Computer, Inc."; +} + export function keybindEquals(first: Keybind, second: Keybind): boolean { if (first == null || second == null || Boolean(first.alt) != Boolean(second.alt) || Boolean(first.ctrl) != Boolean(second.ctrl) || Boolean(first.shift) != Boolean(second.shift) ||