fix: sanitize sync error messages in frontend, limit displayed length

This commit is contained in:
mirivlad 2026-06-20 03:20:26 +08:00
parent ef2c8c76c4
commit 95aa600704
1 changed files with 15 additions and 7 deletions

View File

@ -16,6 +16,14 @@
let showResetKeyConfirm = false let showResetKeyConfirm = false
let connectionOk = null let connectionOk = null
function sanitizeError(msg) {
if (!msg) return 'Unknown error'
let s = String(msg)
s = s.replace(/<[^>]+>/g, '')
if (s.length > 200) s = s.substring(0, 200) + '...'
return s
}
async function backendCall(method, ...args) { async function backendCall(method, ...args) {
if (api && api.backend && typeof api.backend.call === 'function') { if (api && api.backend && typeof api.backend.call === 'function') {
return await api.backend.call(method, ...args) return await api.backend.call(method, ...args)
@ -47,7 +55,7 @@
resultMsg = 'connection ok' resultMsg = 'connection ok'
} catch (e) { } catch (e) {
connectionOk = false connectionOk = false
resultMsg = 'connection failed: ' + String(e) resultMsg = 'connection failed: ' + sanitizeError(e.message || e)
} }
loading = false loading = false
} }
@ -63,7 +71,7 @@
password = '' password = ''
await load() await load()
} catch (e) { } catch (e) {
errorMsg = String(e) errorMsg = sanitizeError(e.message || e)
} }
loading = false loading = false
} }
@ -93,7 +101,7 @@
resultKind = warning ? 'warning' : '' resultKind = warning ? 'warning' : ''
await load() await load()
} catch (e) { } catch (e) {
errorMsg = String(e) errorMsg = sanitizeError(e.message || e)
} }
loading = false loading = false
} }
@ -107,7 +115,7 @@
resultMsg = 'settings saved' resultMsg = 'settings saved'
resultKind = '' resultKind = ''
} catch (e) { } catch (e) {
errorMsg = String(e) errorMsg = sanitizeError(e.message || e)
} }
loading = false loading = false
} }
@ -123,7 +131,7 @@
resultMsg = autoSync ? 'auto-sync enabled' : 'auto-sync disabled' resultMsg = autoSync ? 'auto-sync enabled' : 'auto-sync disabled'
resultKind = '' resultKind = ''
} catch (e) { } catch (e) {
errorMsg = String(e) errorMsg = sanitizeError(e.message || e)
} }
loading = false loading = false
} }
@ -140,7 +148,7 @@
await backendCall('SyncDisconnect') await backendCall('SyncDisconnect')
resultMsg = 'disconnected' resultMsg = 'disconnected'
await load() await load()
} catch (e) { errorMsg = String(e) } } catch (e) { errorMsg = sanitizeError(e.message || e) }
loading = false loading = false
} }
@ -156,7 +164,7 @@
await backendCall('ResetSyncKey') await backendCall('ResetSyncKey')
resultMsg = 'key reset' resultMsg = 'key reset'
await load() await load()
} catch (e) { errorMsg = String(e) } } catch (e) { errorMsg = sanitizeError(e.message || e) }
loading = false loading = false
} }