SHA256
Сделать DM body opaque для сервера и улучшить fallback UI
This commit is contained in:
+17
-3
@@ -83,6 +83,16 @@ import * as networkView from './pages/network-view.js';
|
||||
import * as notificationsView from './pages/notifications-view.js';
|
||||
|
||||
const CONVERSATION_CLEAR_NOTICE_TEXT = 'История переписки очищена с этого места';
|
||||
const DM_UNSUPPORTED_FORMAT_TEXT = 'Формат сообщения не поддерживается';
|
||||
const DM_DECRYPT_FAILED_TEXT = 'Не удалось расшифровать сообщение';
|
||||
const DM_CORRUPTED_TEXT = 'Сообщение повреждено';
|
||||
|
||||
function dmDecryptFallbackText(error) {
|
||||
const kind = authService.classifyDmDecryptFailure(error);
|
||||
if (kind === 'unsupported_format') return DM_UNSUPPORTED_FORMAT_TEXT;
|
||||
if (kind === 'corrupted') return DM_CORRUPTED_TEXT;
|
||||
return DM_DECRYPT_FAILED_TEXT;
|
||||
}
|
||||
|
||||
const routes = {
|
||||
'start-view': startView,
|
||||
@@ -1095,14 +1105,18 @@ async function init() {
|
||||
});
|
||||
text = String(decrypted?.text || '');
|
||||
} catch (error) {
|
||||
shouldAckSessionDelivery = false;
|
||||
text = dmDecryptFallbackText(error);
|
||||
addAppLogEntry({
|
||||
level: 'warn',
|
||||
source: 'signed-dm',
|
||||
message: 'Не удалось расшифровать DM',
|
||||
details: { messageKey, baseKey: parsed.baseKey, error: error?.message || 'unknown' },
|
||||
details: {
|
||||
messageKey,
|
||||
baseKey: parsed.baseKey,
|
||||
error: error?.message || 'unknown',
|
||||
fallbackText: text,
|
||||
},
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
const chatId = resolveSignedDmChatId({
|
||||
|
||||
Reference in New Issue
Block a user