From 410cd4d7f3a4edbebda5ace29fa1aef5692a31ad Mon Sep 17 00:00:00 2001 From: Tamius Han Date: Sat, 4 Jan 2020 02:36:46 +0100 Subject: [PATCH] Fix invalid site settings on settings.save --- src/ext/lib/Settings.js | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/ext/lib/Settings.js b/src/ext/lib/Settings.js index 173f380..3b23f3d 100644 --- a/src/ext/lib/Settings.js +++ b/src/ext/lib/Settings.js @@ -282,11 +282,36 @@ class Settings { } } + fixSitesSettings(sites) { + for (const site in sites) { + if (site === '@global') { + continue; + } + if (sites[site].mode === undefined) { + sites[site].mode = ExtensionMode.Default; + } + if (sites[site].autoar === undefined) { + sites[site].mode = ExtensionMode.Default; + } + if (sites[site].stretch === undefined) { + sites[site].mode = Stretch.Default; + } + if (sites[site].videoAlignment === undefined) { + sites[site].mode = VideoAlignment.Default; + } + if (sites[site].keyboardShortcutsEnabled === undefined) { + sites[site].mode = ExtensionMode.Default; + } + } + } + async set(extensionConf, options) { if (!options || !options.forcePreserveVersion) { extensionConf.version = this.version; } + fixSitesSettings(sites); + this.logger.log('info', 'settings', "[Settings::set] setting new settings:", extensionConf) if (currentBrowser.firefox || currentBrowser.edge) { @@ -377,10 +402,14 @@ class Settings { return ExtensionMode.Enabled; } else if (this.active.sites[site].mode === ExtensionMode.Basic) { return ExtensionMode.Basic; - } else if (this.active.sites[site].mode === ExtensionMode.Default && site !== '@global') { - return this.getExtensionMode('@global'); - } else { + } else if (this.active.sites[site].mode === ExtensionMode.Disabled) { return ExtensionMode.Disabled; + } else { + if (site !== '@global') { + return this.getExtensionMode('@global'); + } else { + return ExtensionMode.Disabled; + } } } catch(e){