feat(controller): configure ambient video overlays

This commit is contained in:
joshpatra committed 2026-07-16 17:05:52 -04:00
1 parent 7073330916
commit 9c10183ab6
8 files changed
+236 -16

No files matched your search

+23 -2
View File
@@ -282,6 +282,17 @@
</label>
<input id="audioBoolean" type="checkbox" />
</div>
<div class="row row-checkbox">
<label for="showAmbientLoopControls"
>Show controls on ambient/slideshow videos<br />
<em
>Also shows Speeder on muted autoplay loops used as animated
cards or slideshow artwork. Genuine video players are always
controlled regardless of this setting.</em
>
</label>
<input id="showAmbientLoopControls" type="checkbox" />
</div>
<div class="defaults-divider"></div>
<h4 class="defaults-sub-heading">Playback</h4>
@@ -803,8 +814,8 @@
<label class="site-override-lead">
<span
>Override playback for this site<br /><em
>When on, remember speed / force / audio below replace
general defaults for matching URLs.</em
>When on, remember speed / force / media eligibility
below replace general defaults for matching URLs.</em
></span
>
<input type="checkbox" class="override-playback" />
@@ -854,6 +865,16 @@
>
<input type="checkbox" class="site-audioBoolean" />
</div>
<div class="site-rule-option site-rule-option-checkbox">
<label
>Show controls on ambient/slideshow videos:<br /><em
>Also includes muted autoplay loops used as animated
cards or slideshow artwork. Genuine video players are
always included.</em
></label
>
<input type="checkbox" class="site-showAmbientLoopControls" />
</div>
</div>
</div>
<div class="site-rule-override-section">
+11 -1
View File
@@ -835,6 +835,8 @@ function save_options() {
settings.forceLastSavedSpeed =
document.getElementById("forceLastSavedSpeed").checked;
settings.audioBoolean = document.getElementById("audioBoolean").checked;
settings.showAmbientLoopControls =
document.getElementById("showAmbientLoopControls").checked;
settings.enabled = document.getElementById("enabled").checked;
settings.startHidden = document.getElementById("startHidden").checked;
settings.shortcutTargetMode =
@@ -974,11 +976,15 @@ function save_options() {
rule.preferredSpeed = preferredSpeed;
}
rule.audioBoolean = ruleEl.querySelector(".site-audioBoolean").checked;
rule.showAmbientLoopControls = ruleEl.querySelector(
".site-showAmbientLoopControls"
).checked;
} else {
delete rule.rememberSpeed;
delete rule.forceLastSavedSpeed;
delete rule.preferredSpeed;
delete rule.audioBoolean;
delete rule.showAmbientLoopControls;
}
if (ruleEl.querySelector(".override-opacity").checked) {
@@ -1278,7 +1284,8 @@ function createSiteRule(rule) {
(rule.rememberSpeed !== undefined ||
rule.forceLastSavedSpeed !== undefined ||
rule.preferredSpeed !== undefined ||
rule.audioBoolean !== undefined)
rule.audioBoolean !== undefined ||
rule.showAmbientLoopControls !== undefined)
);
ruleEl.querySelector(".override-playback").checked = hasPlaybackOverride;
syncSiteRuleField(ruleEl, rule, "rememberSpeed", true);
@@ -1288,6 +1295,7 @@ function createSiteRule(rule) {
? String(rule.preferredSpeed)
: "";
syncSiteRuleField(ruleEl, rule, "audioBoolean", true);
syncSiteRuleField(ruleEl, rule, "showAmbientLoopControls", true);
applySiteRuleOverrideState(ruleEl, "override-playback", "site-playback-container");
ruleEl.querySelector(".override-opacity").checked = Boolean(
@@ -1780,6 +1788,8 @@ function restore_options(callback) {
document.getElementById("forceLastSavedSpeed").checked =
storage.forceLastSavedSpeed;
document.getElementById("audioBoolean").checked = storage.audioBoolean;
document.getElementById("showAmbientLoopControls").checked =
storage.showAmbientLoopControls;
document.getElementById("enabled").checked = storage.enabled;
document.getElementById("startHidden").checked = storage.startHidden;
document.getElementById("shortcutTargetMode").value =