diff --git a/inject.js b/inject.js index 010010b..c6eb7b2 100644 --- a/inject.js +++ b/inject.js @@ -39,6 +39,7 @@ var tc = { defaultLogLevel: 3, logLevel: 3, enableSubtitleNudge: false, + subtitleNudgeEnabledByDefault: true, subtitleNudgeInterval: 50, // Default 50ms balances subtitle tracking with CPU cost subtitleNudgeAmount: 0.001, customButtonIcons: {} @@ -384,6 +385,7 @@ function captureSiteRuleBase() { controllerMarginTop: tc.settings.controllerMarginTop, controllerMarginBottom: tc.settings.controllerMarginBottom, enableSubtitleNudge: tc.settings.enableSubtitleNudge, + subtitleNudgeEnabledByDefault: tc.settings.subtitleNudgeEnabledByDefault, subtitleNudgeInterval: tc.settings.subtitleNudgeInterval, controllerButtons: Array.isArray(tc.settings.controllerButtons) ? tc.settings.controllerButtons.slice() @@ -410,6 +412,7 @@ function resetSettingsFromSiteRuleBase() { tc.settings.controllerMarginTop = base.controllerMarginTop; tc.settings.controllerMarginBottom = base.controllerMarginBottom; tc.settings.enableSubtitleNudge = base.enableSubtitleNudge; + tc.settings.subtitleNudgeEnabledByDefault = base.subtitleNudgeEnabledByDefault; tc.settings.subtitleNudgeInterval = base.subtitleNudgeInterval; tc.settings.controllerButtons = Array.isArray(base.controllerButtons) ? base.controllerButtons.slice() @@ -659,13 +662,15 @@ function isSubtitleNudgeAvailableForVideo(video) { function isSubtitleNudgeEnabledForVideo(video) { if (!isSubtitleNudgeAvailableForVideo(video)) return false; - if (!video || !video.vsc) return true; + if (!video || !video.vsc) { + return Boolean(tc.settings.subtitleNudgeEnabledByDefault); + } if (typeof video.vsc.subtitleNudgeEnabledOverride === "boolean") { return video.vsc.subtitleNudgeEnabledOverride; } - return true; + return Boolean(tc.settings.subtitleNudgeEnabledByDefault); } function setSubtitleNudgeEnabledForVideo(video, enabled) { @@ -1195,6 +1200,10 @@ chrome.storage.sync.get(tc.settings, function(storage) { typeof storage.enableSubtitleNudge !== "undefined" ? Boolean(storage.enableSubtitleNudge) : tc.settings.enableSubtitleNudge; + tc.settings.subtitleNudgeEnabledByDefault = + typeof storage.subtitleNudgeEnabledByDefault !== "undefined" + ? Boolean(storage.subtitleNudgeEnabledByDefault) + : tc.settings.subtitleNudgeEnabledByDefault; tc.settings.subtitleNudgeInterval = Math.min( 1000, Math.max(10, Number(storage.subtitleNudgeInterval) || 50) @@ -2051,6 +2060,7 @@ function applySiteRuleOverrides() { "controllerMarginTop", "controllerMarginBottom", "enableSubtitleNudge", + "subtitleNudgeEnabledByDefault", "subtitleNudgeInterval" ]; diff --git a/manifest.json b/manifest.json index 6ddc5d7..8b885fa 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "Speeder", "short_name": "Speeder", - "version": "5.2.8", + "version": "5.3.0", "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", diff --git a/options.html b/options.html index d78b791..36367a2 100644 --- a/options.html +++ b/options.html @@ -394,11 +394,21 @@
+
+ + +
+
+ + +