Fix invalid site settings on settings.save

This commit is contained in:
Tamius Han 2020-01-04 02:36:46 +01:00
parent 3d7a47662e
commit 410cd4d7f3

View File

@ -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) { async set(extensionConf, options) {
if (!options || !options.forcePreserveVersion) { if (!options || !options.forcePreserveVersion) {
extensionConf.version = this.version; extensionConf.version = this.version;
} }
fixSitesSettings(sites);
this.logger.log('info', 'settings', "[Settings::set] setting new settings:", extensionConf) this.logger.log('info', 'settings', "[Settings::set] setting new settings:", extensionConf)
if (currentBrowser.firefox || currentBrowser.edge) { if (currentBrowser.firefox || currentBrowser.edge) {
@ -377,11 +402,15 @@ class Settings {
return ExtensionMode.Enabled; return ExtensionMode.Enabled;
} else if (this.active.sites[site].mode === ExtensionMode.Basic) { } else if (this.active.sites[site].mode === ExtensionMode.Basic) {
return ExtensionMode.Basic; return ExtensionMode.Basic;
} else if (this.active.sites[site].mode === ExtensionMode.Default && site !== '@global') { } else if (this.active.sites[site].mode === ExtensionMode.Disabled) {
return ExtensionMode.Disabled;
} else {
if (site !== '@global') {
return this.getExtensionMode('@global'); return this.getExtensionMode('@global');
} else { } else {
return ExtensionMode.Disabled; return ExtensionMode.Disabled;
} }
}
} catch(e){ } catch(e){
this.logger.log('error', 'settings', "[Settings.js::canStartExtension] Something went wrong — are settings defined/has init() been called?\n\nerror:", e, "\n\nSettings object:", this) this.logger.log('error', 'settings', "[Settings.js::canStartExtension] Something went wrong — are settings defined/has init() been called?\n\nerror:", e, "\n\nSettings object:", this)