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 @@
+
+
+
+
+
+
+
+