diff --git a/extension/content.js b/extension/content.js index 115f08f..e8b9c96 100644 --- a/extension/content.js +++ b/extension/content.js @@ -62,6 +62,8 @@ let lastKnownDisneyPlusDuration = 0; let lastKnownDisneyPlusScale = 1; let lastKnownDisneyPlusStart = 0; + let lastDisneyPlusUiCurrent = null; + let lastDisneyPlusNativeAtUi = null; function hostMatchesUrl(host, url) { const normalized = String(url || '') @@ -285,6 +287,8 @@ : (range ? range.start : 0); lastKnownDisneyPlusScale = nativeScale; lastKnownDisneyPlusStart = nativeStart; + lastDisneyPlusUiCurrent = ui.current; + lastDisneyPlusNativeAtUi = Number.isFinite(current) ? current : null; return { ...(range || {}), current: ui.current, @@ -294,18 +298,27 @@ }; } - if (lastKnownDisneyPlusDuration > 0) { - const calculatedCurrent = (Number.isFinite(current) && lastKnownDisneyPlusScale > 0) - ? (current - lastKnownDisneyPlusStart) / lastKnownDisneyPlusScale - : 0; - return { - start: 0, - end: lastKnownDisneyPlusDuration, - duration: lastKnownDisneyPlusDuration, - current: Math.max(0, Math.min(lastKnownDisneyPlusDuration, calculatedCurrent)), - nativeScale: lastKnownDisneyPlusScale, - nativeStart: lastKnownDisneyPlusStart - }; + // No live UI readout (control overlay hidden or mid-rebuild). Extrapolate + // from the last live UI position using the native clock, which advances 1:1 + // with real playback. Disney recreates the