Import log instead of using it off of window

This commit is contained in:
Josh Perez 2021-09-17 14:27:53 -04:00 committed by GitHub
parent 8eb0dd3116
commit 65ddf0a9e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
155 changed files with 3654 additions and 3433 deletions

View file

@ -100,6 +100,7 @@ import {
GroupSyncEvent,
EnvelopeEvent,
} from './messageReceiverEvents';
import * as log from '../logging/log';
// TODO: remove once we move away from ArrayBuffers
const FIXMEU8 = Uint8Array;
@ -235,7 +236,7 @@ export default class MessageReceiver
public handleRequest(request: IncomingWebSocketRequest): void {
// We do the message decryption here, instead of in the ordered pending queue,
// to avoid exposing the time it took us to process messages through the time-to-ack.
window.log.info('MessageReceiver: got request', request.verb, request.path);
log.info('MessageReceiver: got request', request.verb, request.path);
if (request.path !== '/api/v1/message') {
request.respond(200, 'OK');
@ -296,10 +297,7 @@ export default class MessageReceiver
this.processedCount += 1;
} catch (e) {
request.respond(500, 'Bad encrypted websocket message');
window.log.error(
'Error handling incoming message:',
Errors.toLogFormat(e)
);
log.error('Error handling incoming message:', Errors.toLogFormat(e));
await this.dispatchAndWait(new ErrorEvent(e));
}
};
@ -327,7 +325,7 @@ export default class MessageReceiver
public async drain(): Promise<void> {
const waitForEncryptedQueue = async () =>
this.addToQueue(async () => {
window.log.info('drained');
log.info('drained');
}, TaskType.Decrypted);
const waitForIncomingQueue = async () =>
@ -535,7 +533,7 @@ export default class MessageReceiver
this.cacheRemoveBatcher.flushAndWait(),
]);
window.log.info("MessageReceiver: emitting 'empty' event");
log.info("MessageReceiver: emitting 'empty' event");
this.dispatchEvent(new EmptyEvent());
this.isEmptied = true;
@ -543,7 +541,7 @@ export default class MessageReceiver
};
const waitForDecryptedQueue = async () => {
window.log.info(
log.info(
"MessageReceiver: finished processing messages after 'empty', now waiting for application"
);
@ -589,7 +587,7 @@ export default class MessageReceiver
}
private async queueCached(item: UnprocessedType): Promise<void> {
window.log.info('MessageReceiver.queueCached', item.id);
log.info('MessageReceiver.queueCached', item.id);
try {
let envelopePlaintext: Uint8Array;
@ -645,7 +643,7 @@ export default class MessageReceiver
this.queueCachedEnvelope(item, envelope);
}
} catch (error) {
window.log.error(
log.error(
'queueCached error handling item',
item.id,
'removing it. Error:',
@ -656,7 +654,7 @@ export default class MessageReceiver
const { id } = item;
await this.storage.protocol.removeUnprocessed(id);
} catch (deleteError) {
window.log.error(
log.error(
'queueCached error deleting item',
item.id,
'Error:',
@ -694,19 +692,19 @@ export default class MessageReceiver
}
private async getAllFromCache(): Promise<Array<UnprocessedType>> {
window.log.info('getAllFromCache');
log.info('getAllFromCache');
const count = await this.storage.protocol.getUnprocessedCount();
if (count > 1500) {
await this.storage.protocol.removeAllUnprocessed();
window.log.warn(
log.warn(
`There were ${count} messages in cache. Deleted all instead of reprocessing`
);
return [];
}
const items = await this.storage.protocol.getAllUnprocessed();
window.log.info('getAllFromCache loaded', items.length, 'saved envelopes');
log.info('getAllFromCache loaded', items.length, 'saved envelopes');
return Promise.all(
map(items, async item => {
@ -714,10 +712,7 @@ export default class MessageReceiver
try {
if (attempts >= 3) {
window.log.warn(
'getAllFromCache final attempt for envelope',
item.id
);
log.warn('getAllFromCache final attempt for envelope', item.id);
await this.storage.protocol.removeUnprocessed(item.id);
} else {
await this.storage.protocol.updateUnprocessedAttempts(
@ -726,7 +721,7 @@ export default class MessageReceiver
);
}
} catch (error) {
window.log.error(
log.error(
'getAllFromCache error updating item after load:',
Errors.toLogFormat(error)
);
@ -740,7 +735,7 @@ export default class MessageReceiver
private async decryptAndCacheBatch(
items: Array<CacheAddItemType>
): Promise<void> {
window.log.info('MessageReceiver.decryptAndCacheBatch', items.length);
log.info('MessageReceiver.decryptAndCacheBatch', items.length);
const decrypted: Array<
Readonly<{
@ -788,7 +783,7 @@ export default class MessageReceiver
}
} catch (error) {
failed.push(data);
window.log.error(
log.error(
'decryptAndCache error when processing the envelope',
Errors.toLogFormat(error)
);
@ -796,7 +791,7 @@ export default class MessageReceiver
})
);
window.log.info(
log.info(
'MessageReceiver.decryptAndCacheBatch storing ' +
`${decrypted.length} decrypted envelopes, keeping ` +
`${failed.length} failed envelopes.`
@ -824,22 +819,20 @@ export default class MessageReceiver
);
});
window.log.info(
'MessageReceiver.decryptAndCacheBatch acknowledging receipt'
);
log.info('MessageReceiver.decryptAndCacheBatch acknowledging receipt');
// Acknowledge all envelopes
for (const { request } of items) {
try {
request.respond(200, 'OK');
} catch (error) {
window.log.error(
log.error(
'decryptAndCacheBatch: Failed to send 200 to server; still queuing envelope'
);
}
}
} catch (error) {
window.log.error(
log.error(
'decryptAndCache error trying to add messages to cache:',
Errors.toLogFormat(error)
);
@ -855,7 +848,7 @@ export default class MessageReceiver
try {
await this.queueDecryptedEnvelope(envelope, plaintext);
} catch (error) {
window.log.error(
log.error(
'decryptAndCache error when processing decrypted envelope',
Errors.toLogFormat(error)
);
@ -863,7 +856,7 @@ export default class MessageReceiver
})
);
window.log.info('MessageReceiver.decryptAndCacheBatch fully processed');
log.info('MessageReceiver.decryptAndCacheBatch fully processed');
this.maybeScheduleRetryTimeout();
}
@ -903,7 +896,7 @@ export default class MessageReceiver
plaintext: Uint8Array
): Promise<void> {
const id = this.getEnvelopeId(envelope);
window.log.info('queueing decrypted envelope', id);
log.info('queueing decrypted envelope', id);
const task = this.handleDecryptedEnvelope.bind(this, envelope, plaintext);
const taskWithTimeout = createTaskWithTimeout(
@ -914,7 +907,7 @@ export default class MessageReceiver
try {
await this.addToQueue(taskWithTimeout, TaskType.Decrypted);
} catch (error) {
window.log.error(
log.error(
`queueDecryptedEnvelope error handling envelope ${id}:`,
Errors.toLogFormat(error)
);
@ -926,7 +919,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope
): Promise<DecryptResult> {
let logId = this.getEnvelopeId(envelope);
window.log.info('queueing envelope', logId);
log.info('queueing envelope', logId);
const task = createTaskWithTimeout(async (): Promise<DecryptResult> => {
const unsealedEnvelope = await this.unsealEnvelope(stores, envelope);
@ -946,9 +939,9 @@ export default class MessageReceiver
Errors.toLogFormat(error),
];
if (error.warn) {
window.log.warn(...args);
log.warn(...args);
} else {
window.log.error(...args);
log.error(...args);
}
throw error;
}
@ -961,7 +954,7 @@ export default class MessageReceiver
this.decryptAndCacheBatcher.add({
request: {
respond(code, status) {
window.log.info(
log.info(
'queueCachedEnvelope: fake response ' +
`with code ${code} and status ${status}`
);
@ -1003,7 +996,7 @@ export default class MessageReceiver
const logId = this.getEnvelopeId(envelope);
if (this.stoppingProcessing) {
window.log.warn(`MessageReceiver.unsealEnvelope(${logId}): dropping`);
log.warn(`MessageReceiver.unsealEnvelope(${logId}): dropping`);
throw new Error('Sealed envelope dropped due to stopping processing');
}
@ -1017,9 +1010,7 @@ export default class MessageReceiver
throw new Error('Received message with no content and no legacyMessage');
}
window.log.info(
`MessageReceiver.unsealEnvelope(${logId}): unidentified message`
);
log.info(`MessageReceiver.unsealEnvelope(${logId}): unidentified message`);
const messageContent = await sealedSenderDecryptToUsmc(
Buffer.from(ciphertext),
stores.identityKeyStore
@ -1065,9 +1056,7 @@ export default class MessageReceiver
const logId = this.getEnvelopeId(envelope);
if (this.stoppingProcessing) {
window.log.warn(
`MessageReceiver.decryptEnvelope(${logId}): dropping unsealed`
);
log.warn(`MessageReceiver.decryptEnvelope(${logId}): dropping unsealed`);
throw new Error('Unsealed envelope dropped due to stopping processing');
}
@ -1091,13 +1080,13 @@ export default class MessageReceiver
);
}
window.log.info(
log.info(
`MessageReceiver.decryptEnvelope(${logId})${isLegacy ? ' (legacy)' : ''}`
);
const plaintext = await this.decrypt(stores, envelope, ciphertext);
if (!plaintext) {
window.log.warn('MessageReceiver.decryptEnvelope: plaintext was falsey');
log.warn('MessageReceiver.decryptEnvelope: plaintext was falsey');
return { plaintext, envelope };
}
@ -1122,7 +1111,7 @@ export default class MessageReceiver
);
}
} catch (error) {
window.log.error(
log.error(
'MessageReceiver.decryptEnvelope: Failed to process sender ' +
`key distribution message: ${Errors.toLogFormat(error)}`
);
@ -1132,7 +1121,7 @@ export default class MessageReceiver
(envelope.source && this.isBlocked(envelope.source)) ||
(envelope.sourceUuid && this.isUuidBlocked(envelope.sourceUuid))
) {
window.log.info(
log.info(
'MessageReceiver.decryptEnvelope: Dropping message from blocked sender'
);
return { plaintext: undefined, envelope };
@ -1256,7 +1245,7 @@ export default class MessageReceiver
if (
messageContent.msgType() === unidentifiedSenderTypeEnum.PLAINTEXT_CONTENT
) {
window.log.info(
log.info(
`MessageReceiver.decryptSealedSender(${logId}): ` +
'unidentified message/plaintext contents'
);
@ -1272,7 +1261,7 @@ export default class MessageReceiver
if (
messageContent.msgType() === unidentifiedSenderTypeEnum.SENDERKEY_MESSAGE
) {
window.log.info(
log.info(
`MessageReceiver.decryptSealedSender(${logId}): ` +
'unidentified message/sender key contents'
);
@ -1301,7 +1290,7 @@ export default class MessageReceiver
return { plaintext };
}
window.log.info(
log.info(
`MessageReceiver.decryptSealedSender(${logId}): ` +
'unidentified message/passing to sealedSenderDecryptMessage'
);
@ -1369,14 +1358,14 @@ export default class MessageReceiver
);
if (envelope.type === envelopeTypeEnum.PLAINTEXT_CONTENT) {
window.log.info(`decrypt/${logId}: plaintext message`);
log.info(`decrypt/${logId}: plaintext message`);
const buffer = Buffer.from(ciphertext);
const plaintextContent = PlaintextContent.deserialize(buffer);
return this.unpad(plaintextContent.body());
}
if (envelope.type === envelopeTypeEnum.CIPHERTEXT) {
window.log.info(`decrypt/${logId}: ciphertext message`);
log.info(`decrypt/${logId}: ciphertext message`);
if (!identifier) {
throw new Error(
'MessageReceiver.innerDecrypt: No identifier for CIPHERTEXT message'
@ -1405,7 +1394,7 @@ export default class MessageReceiver
return plaintext;
}
if (envelope.type === envelopeTypeEnum.PREKEY_BUNDLE) {
window.log.info(`decrypt/${logId}: prekey message`);
log.info(`decrypt/${logId}: prekey message`);
if (!identifier) {
throw new Error(
'MessageReceiver.innerDecrypt: No identifier for PREKEY_BUNDLE message'
@ -1438,7 +1427,7 @@ export default class MessageReceiver
return plaintext;
}
if (envelope.type === envelopeTypeEnum.UNIDENTIFIED_SENDER) {
window.log.info(`decrypt/${logId}: unidentified message`);
log.info(`decrypt/${logId}: unidentified message`);
const { plaintext, unsealedPlaintext } = await this.decryptSealedSender(
stores,
envelope,
@ -1503,7 +1492,7 @@ export default class MessageReceiver
(envelope.source && this.isBlocked(envelope.source)) ||
(envelope.sourceUuid && this.isUuidBlocked(envelope.sourceUuid))
) {
window.log.info(
log.info(
'MessageReceiver.decrypt: Error from blocked sender; no further processing'
);
throw error;
@ -1532,7 +1521,7 @@ export default class MessageReceiver
);
} else {
const envelopeId = this.getEnvelopeId(envelope);
window.log.error(
log.error(
`MessageReceiver.decrypt: Envelope ${envelopeId} missing uuid or deviceId`
);
}
@ -1545,10 +1534,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
sentContainer: ProcessedSent
) {
window.log.info(
'MessageReceiver.handleSentMessage',
this.getEnvelopeId(envelope)
);
log.info('MessageReceiver.handleSentMessage', this.getEnvelopeId(envelope));
const {
destination,
destinationUuid,
@ -1573,9 +1559,7 @@ export default class MessageReceiver
if (theirUuid) {
p = this.handleEndSession(theirUuid);
} else {
window.log.warn(
`handleSentMessage: uuid not found for ${destination}`
);
log.warn(`handleSentMessage: uuid not found for ${destination}`);
p = Promise.resolve();
}
} else {
@ -1602,7 +1586,7 @@ export default class MessageReceiver
);
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
window.log.warn(
log.warn(
`Message ${this.getEnvelopeId(
envelope
)} ignored; destined for blocked group`
@ -1636,10 +1620,7 @@ export default class MessageReceiver
envelope: UnsealedEnvelope,
msg: Proto.IDataMessage
): Promise<void> {
window.log.info(
'MessageReceiver.handleDataMessage',
this.getEnvelopeId(envelope)
);
log.info('MessageReceiver.handleDataMessage', this.getEnvelopeId(envelope));
let p: Promise<void> = Promise.resolve();
// eslint-disable-next-line no-bitwise
const destination = envelope.sourceUuid;
@ -1691,7 +1672,7 @@ export default class MessageReceiver
);
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
window.log.warn(
log.warn(
`Message ${this.getEnvelopeId(
envelope
)} ignored; destined for blocked group`
@ -1733,9 +1714,7 @@ export default class MessageReceiver
): Promise<ProcessedEnvelope> {
const { retryPlaceholders } = window.Signal.Services;
if (!retryPlaceholders) {
window.log.warn(
'maybeUpdateTimestamp: retry placeholders not available!'
);
log.warn('maybeUpdateTimestamp: retry placeholders not available!');
return envelope;
}
@ -1745,7 +1724,7 @@ export default class MessageReceiver
try {
if (!conversation) {
window.log.info(
log.info(
`maybeUpdateTimestamp/${timestamp}: No conversation found for identifier ${identifier}`
);
return envelope;
@ -1757,11 +1736,11 @@ export default class MessageReceiver
timestamp
);
if (item && item.wasOpened) {
window.log.info(
log.info(
`maybeUpdateTimestamp/${logId}: found retry placeholder, but conversation was opened. No updates made.`
);
} else if (item) {
window.log.info(
log.info(
`maybeUpdateTimestamp/${logId}: found retry placeholder. Updating receivedAtCounter/receivedAtDate`
);
@ -1772,7 +1751,7 @@ export default class MessageReceiver
};
}
} catch (error) {
window.log.error(
log.error(
`maybeUpdateTimestamp/${timestamp}: Failed to process message: ${Errors.toLogFormat(
error
)}`
@ -1839,7 +1818,7 @@ export default class MessageReceiver
decryptionError: Uint8Array
) {
const logId = this.getEnvelopeId(envelope);
window.log.info(`handleDecryptionError: ${logId}`);
log.info(`handleDecryptionError: ${logId}`);
const buffer = Buffer.from(decryptionError);
const request = DecryptionErrorMessage.deserialize(buffer);
@ -1848,9 +1827,7 @@ export default class MessageReceiver
const { sourceUuid, sourceDevice } = envelope;
if (!sourceUuid || !sourceDevice) {
window.log.error(
`handleDecryptionError/${logId}: Missing uuid or device!`
);
log.error(`handleDecryptionError/${logId}: Missing uuid or device!`);
return;
}
@ -1871,7 +1848,7 @@ export default class MessageReceiver
distributionMessage: Uint8Array
): Promise<void> {
const envelopeId = this.getEnvelopeId(envelope);
window.log.info(`handleSenderKeyDistributionMessage/${envelopeId}`);
log.info(`handleSenderKeyDistributionMessage/${envelopeId}`);
// Note: we don't call removeFromCache here because this message can be combined
// with a dataMessage, for example. That processing will dictate cache removal.
@ -1974,7 +1951,7 @@ export default class MessageReceiver
const typingTimestamp = normalizeNumber(typingMessage.timestamp);
if (typingTimestamp !== envelopeTimestamp) {
window.log.warn(
log.warn(
`Typing message envelope timestamp (${envelopeTimestamp}) did not match typing timestamp (${typingTimestamp})`
);
return;
@ -1997,7 +1974,7 @@ export default class MessageReceiver
} else if (groupId.byteLength === GROUPV2_ID_LENGTH) {
groupV2IdString = Bytes.toBase64(groupId);
} else {
window.log.error('handleTypingMessage: Received invalid groupId value');
log.error('handleTypingMessage: Received invalid groupId value');
}
}
@ -2020,10 +1997,7 @@ export default class MessageReceiver
}
private handleNullMessage(envelope: ProcessedEnvelope): void {
window.log.info(
'MessageReceiver.handleNullMessage',
this.getEnvelopeId(envelope)
);
log.info('MessageReceiver.handleNullMessage', this.getEnvelopeId(envelope));
this.removeFromCache(envelope);
}
@ -2039,7 +2013,7 @@ export default class MessageReceiver
const isInvalid = id.byteLength !== GROUPV1_ID_LENGTH;
if (isInvalid) {
window.log.info(
log.info(
'isInvalidGroupData: invalid GroupV1 message from',
this.getEnvelopeId(envelope)
);
@ -2054,7 +2028,7 @@ export default class MessageReceiver
const isInvalid = masterKey.byteLength !== MASTER_KEY_LENGTH;
if (isInvalid) {
window.log.info(
log.info(
'isInvalidGroupData: invalid GroupV2 message from',
this.getEnvelopeId(envelope)
);
@ -2173,7 +2147,7 @@ export default class MessageReceiver
strictAssert(sentMessage.timestamp, 'sent message without timestamp');
window.log.info(
log.info(
'sent message to',
this.getDestination(sentMessage),
normalizeNumber(sentMessage.timestamp),
@ -2194,7 +2168,7 @@ export default class MessageReceiver
return this.handleBlocked(envelope, syncMessage.blocked);
}
if (syncMessage.request) {
window.log.info('Got SyncMessage Request');
log.info('Got SyncMessage Request');
this.removeFromCache(envelope);
return undefined;
}
@ -2236,7 +2210,7 @@ export default class MessageReceiver
}
this.removeFromCache(envelope);
window.log.warn(
log.warn(
`handleSyncMessage/${this.getEnvelopeId(envelope)}: Got empty SyncMessage`
);
return Promise.resolve();
@ -2246,7 +2220,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
configuration: Proto.SyncMessage.IConfiguration
): Promise<void> {
window.log.info('got configuration sync message');
log.info('got configuration sync message');
const ev = new ConfigurationEvent(
configuration,
this.removeFromCache.bind(this, envelope)
@ -2258,7 +2232,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
sync: Proto.SyncMessage.IViewOnceOpen
): Promise<void> {
window.log.info('got view once open sync message');
log.info('got view once open sync message');
const ev = new ViewOnceOpenSyncEvent(
{
@ -2278,7 +2252,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
sync: Proto.SyncMessage.IMessageRequestResponse
): Promise<void> {
window.log.info('got message request response sync message');
log.info('got message request response sync message');
const { groupId } = sync;
@ -2292,7 +2266,7 @@ export default class MessageReceiver
groupV2IdString = Bytes.toBase64(groupId);
} else {
this.removeFromCache(envelope);
window.log.error('Received message request with invalid groupId');
log.error('Received message request with invalid groupId');
return undefined;
}
}
@ -2320,7 +2294,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
sync: Proto.SyncMessage.IFetchLatest
): Promise<void> {
window.log.info('got fetch latest sync message');
log.info('got fetch latest sync message');
const ev = new FetchLatestEvent(
sync.type,
@ -2334,7 +2308,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
sync: Proto.SyncMessage.IKeys
): Promise<void> {
window.log.info('got keys sync message');
log.info('got keys sync message');
if (!sync.storageService) {
return undefined;
@ -2353,7 +2327,7 @@ export default class MessageReceiver
operations: Array<Proto.SyncMessage.IStickerPackOperation>
): Promise<void> {
const ENUM = Proto.SyncMessage.StickerPackOperation.Type;
window.log.info('got sticker pack operation sync message');
log.info('got sticker pack operation sync message');
const stickerPacks = operations.map(operation => ({
id: operation.packId ? Bytes.toHex(operation.packId) : undefined,
@ -2397,7 +2371,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
read: Array<Proto.SyncMessage.IRead>
): Promise<void> {
window.log.info('MessageReceiver.handleRead', this.getEnvelopeId(envelope));
log.info('MessageReceiver.handleRead', this.getEnvelopeId(envelope));
const results = [];
for (const { timestamp, sender, senderUuid } of read) {
const ev = new ReadSyncEvent(
@ -2420,10 +2394,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
viewed: ReadonlyArray<Proto.SyncMessage.IViewed>
): Promise<void> {
window.log.info(
'MessageReceiver.handleViewed',
this.getEnvelopeId(envelope)
);
log.info('MessageReceiver.handleViewed', this.getEnvelopeId(envelope));
await Promise.all(
viewed.map(async ({ timestamp, senderE164, senderUuid }) => {
const ev = new ViewSyncEvent(
@ -2446,7 +2417,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
contacts: Proto.SyncMessage.IContacts
): Promise<void> {
window.log.info('contact sync');
log.info('contact sync');
const { blob } = contacts;
if (!blob) {
throw new Error('MessageReceiver.handleContacts: blob field was missing');
@ -2472,14 +2443,14 @@ export default class MessageReceiver
await Promise.all(results);
window.log.info('handleContacts: finished');
log.info('handleContacts: finished');
}
private async handleGroups(
envelope: ProcessedEnvelope,
groups: Proto.SyncMessage.IGroups
): Promise<void> {
window.log.info('group sync');
log.info('group sync');
const { blob } = groups;
this.removeFromCache(envelope);
@ -2499,7 +2470,7 @@ export default class MessageReceiver
strictAssert(id, 'Group details without id');
if (id.byteLength !== 16) {
window.log.error(
log.error(
`onGroupReceived: Id was ${id} bytes, expected 16 bytes. Dropping group.`
);
continue;
@ -2510,7 +2481,7 @@ export default class MessageReceiver
id: Bytes.toBinary(id),
});
const promise = this.dispatchAndWait(ev).catch(e => {
window.log.error('error processing group', e);
log.error('error processing group', e);
});
groupDetails = groupBuffer.next();
promises.push(promise);
@ -2526,7 +2497,7 @@ export default class MessageReceiver
envelope: ProcessedEnvelope,
blocked: Proto.SyncMessage.IBlocked
): Promise<void> {
window.log.info('Setting these numbers as blocked:', blocked.numbers);
log.info('Setting these numbers as blocked:', blocked.numbers);
if (blocked.numbers) {
await this.storage.put('blocked', blocked.numbers);
}
@ -2534,12 +2505,12 @@ export default class MessageReceiver
const uuids = blocked.uuids.map((uuid, index) => {
return normalizeUuid(uuid, `handleBlocked.uuids.${index}`);
});
window.log.info('Setting these uuids as blocked:', uuids);
log.info('Setting these uuids as blocked:', uuids);
await this.storage.put('blocked-uuids', uuids);
}
const groupIds = map(blocked.groupIds, groupId => Bytes.toBinary(groupId));
window.log.info(
log.info(
'Setting these groups as blocked:',
groupIds.map(groupId => `group(${groupId})`)
);
@ -2568,9 +2539,7 @@ export default class MessageReceiver
}
private async handleEndSession(theirUuid: UUID): Promise<void> {
window.log.info(
`handleEndSession: closing sessions for ${theirUuid.toString()}`
);
log.info(`handleEndSession: closing sessions for ${theirUuid.toString()}`);
await this.storage.protocol.archiveAllSessions(theirUuid);
}