Disappearing message cleanups
This commit is contained in:
parent
dfa6fb5d61
commit
03a187097f
16 changed files with 149 additions and 268 deletions
|
@ -1,4 +1,4 @@
|
|||
// Copyright 2016-2020 Signal Messenger, LLC
|
||||
// Copyright 2016-2021 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
/* global
|
||||
|
@ -17,6 +17,9 @@
|
|||
const messages = await window.Signal.Data.getExpiredMessages({
|
||||
MessageCollection: Whisper.MessageCollection,
|
||||
});
|
||||
window.log.info(
|
||||
`destroyExpiredMessages: found ${messages.length} messages to expire`
|
||||
);
|
||||
|
||||
const messageIds = [];
|
||||
const inMemoryMessages = [];
|
||||
|
@ -59,20 +62,15 @@
|
|||
|
||||
let timeout;
|
||||
async function checkExpiringMessages() {
|
||||
// Look up the next expiring message and set a timer to destroy it
|
||||
const message = await window.Signal.Data.getNextExpiringMessage({
|
||||
Message: Whisper.Message,
|
||||
});
|
||||
window.log.info('checkExpiringMessages: checking for expiring messages');
|
||||
|
||||
if (!message) {
|
||||
const soonestExpiry = await window.Signal.Data.getSoonestMessageExpiry();
|
||||
if (!soonestExpiry) {
|
||||
window.log.info('checkExpiringMessages: found no messages to expire');
|
||||
return;
|
||||
}
|
||||
|
||||
const expiresAt = message.get('expires_at');
|
||||
Whisper.ExpiringMessagesListener.nextExpiration = expiresAt;
|
||||
window.log.info('next message expires', new Date(expiresAt).toISOString());
|
||||
|
||||
let wait = expiresAt - Date.now();
|
||||
let wait = soonestExpiry - Date.now();
|
||||
|
||||
// In the past
|
||||
if (wait < 0) {
|
||||
|
@ -84,6 +82,12 @@
|
|||
wait = 2147483647;
|
||||
}
|
||||
|
||||
window.log.info(
|
||||
`checkExpiringMessages: next message expires ${new Date(
|
||||
soonestExpiry
|
||||
).toISOString()}; waiting ${wait} ms before clearing`
|
||||
);
|
||||
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(destroyExpiredMessages, wait);
|
||||
}
|
||||
|
@ -93,7 +97,6 @@
|
|||
);
|
||||
|
||||
Whisper.ExpiringMessagesListener = {
|
||||
nextExpiration: null,
|
||||
init(events) {
|
||||
checkExpiringMessages();
|
||||
events.on('timetravel', debouncedCheckExpiringMessages);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue