From d281db576743355d8837af607c99a5ce8d8e89b4 Mon Sep 17 00:00:00 2001 From: redphx <96280+redphx@users.noreply.github.com> Date: Tue, 28 Jan 2025 14:54:57 +0700 Subject: [PATCH] Don't store invalid keys in localStorage --- dist/better-xcloud.lite.user.js | 7 ++++++- dist/better-xcloud.user.js | 7 ++++++- src/utils/settings-storages/base-settings-storage.ts | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/dist/better-xcloud.lite.user.js b/dist/better-xcloud.lite.user.js index b0e1d25..ee19cb6 100755 --- a/dist/better-xcloud.lite.user.js +++ b/dist/better-xcloud.lite.user.js @@ -1102,8 +1102,13 @@ this.definitions = definitions, this._settings = null; get settings() { if (this._settings) return this._settings; let settings = JSON.parse(this.storage.getItem(this.storageKey) || "{}"); -for (let key in settings) +for (let key in settings) { +if (!this.definitions.hasOwnProperty(key)) { +delete settings[key]; +continue; +} settings[key] = this.validateValue("get", key, settings[key]); +} return this._settings = settings, settings; } getDefinition(key) { diff --git a/dist/better-xcloud.user.js b/dist/better-xcloud.user.js index 70403e2..3b089ac 100755 --- a/dist/better-xcloud.user.js +++ b/dist/better-xcloud.user.js @@ -1174,8 +1174,13 @@ this.definitions = definitions, this._settings = null; get settings() { if (this._settings) return this._settings; let settings = JSON.parse(this.storage.getItem(this.storageKey) || "{}"); -for (let key in settings) +for (let key in settings) { +if (!this.definitions.hasOwnProperty(key)) { +delete settings[key]; +continue; +} settings[key] = this.validateValue("get", key, settings[key]); +} return this._settings = settings, settings; } getDefinition(key) { diff --git a/src/utils/settings-storages/base-settings-storage.ts b/src/utils/settings-storages/base-settings-storage.ts index a9a7bda..33e94c3 100755 --- a/src/utils/settings-storages/base-settings-storage.ts +++ b/src/utils/settings-storages/base-settings-storage.ts @@ -44,6 +44,12 @@ export class BaseSettingsStorage { // Validate setting values for (const key in settings) { + // Don't store invalid keys + if (!this.definitions.hasOwnProperty(key)) { + delete settings[key]; + continue; + } + settings[key] = this.validateValue('get', key as T, settings[key]); }