diff options
| author | Osmium Sorcerer <os@sof.beauty> | 2026-04-07 02:55:26 +0000 |
|---|---|---|
| committer | Osmium Sorcerer <os@sof.beauty> | 2026-04-18 16:52:23 +0000 |
| commit | 4bd750ca1f3e446f68e0f88fabf0682fd4d61848 (patch) | |
| tree | 055290f5f171d71bb9b2d0ec43107b30d59d7c1f /webAO/dom/changeVolume.ts | |
| parent | 085204dbdf17f379c9a32ea11660accb51b4311d (diff) | |
Replace cookies with localStorage
Cookies's use case is to store persistent data and send it to the server
in subsequent requests, such as to remember logged-in sessions. WebAO is
using them to store site settings like ad-hoc hash tables that require
parsing and serialization.
As a nasty side-effect of how cookies work, clients send all their
settings every time they connect to the server. Server has absolutely no
use for them, but each client sends them anyway, which is an
uncalled-for privacy leak.
Remove this mechanism entirely, switch to localStorage which serves
exactly the purpose of per-origin store with data that never leaves the
browser.
Diffstat (limited to 'webAO/dom/changeVolume.ts')
| -rw-r--r-- | webAO/dom/changeVolume.ts | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/webAO/dom/changeVolume.ts b/webAO/dom/changeVolume.ts index 0c94aa6..dc258fb 100644 --- a/webAO/dom/changeVolume.ts +++ b/webAO/dom/changeVolume.ts @@ -1,5 +1,3 @@ -import setCookie from "../utils/setCookie"; - declare global { interface Window { changeSFXVolume: () => void; @@ -14,7 +12,7 @@ declare global { export function changeSFXVolume(): void { const sfxAudioElement = document.getElementById("client_sfxaudio") as HTMLAudioElement; if (sfxAudioElement) { - setCookie("sfxVolume", sfxAudioElement.volume); + localStorage.setItem("sfxVolume", sfxAudioElement.volume.toString()); } } if (typeof window.changeSFXVolume !== 'function') { @@ -27,9 +25,9 @@ if (typeof window.changeSFXVolume !== 'function') { export function changeTestimonyVolume(): void { const testimonyAudioElement = document.getElementById("client_testimonyaudio") as HTMLAudioElement; if (testimonyAudioElement) { - setCookie( + localStorage.setItem( "testimonyVolume", - testimonyAudioElement.volume + testimonyAudioElement.volume.toString() ); } } @@ -43,9 +41,9 @@ if (typeof window.changeTestimonyVolume !== 'function') { export function changeShoutVolume(): void { const shoutAudioElement = document.getElementById("client_shoutaudio") as HTMLAudioElement; if (shoutAudioElement) { - setCookie("shoutVolume", shoutAudioElement.volume); + localStorage.setItem("shoutVolume", shoutAudioElement.volume.toString()); } } if (typeof window.changeShoutVolume !== 'function') { window.changeShoutVolume = changeShoutVolume; -}
\ No newline at end of file +} |
