Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions src/e2ee/E2eeManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { EventEmitter } from 'events';
import type TypedEventEmitter from 'typed-emitter';
import type { FrameMetadata } from '../frameMetadata/types';
import { hasFrameMetadataPublishOptions } from '../frameMetadata/utils';
import log, { LogLevel, onWorkerLogLevelChanged, workerLogger } from '../logger';
import { LogLevel, LoggerNames, getLogger, onWorkerLogLevelChanged, workerLogger } from '../logger';
import type RTCEngine from '../room/RTCEngine';
import type Room from '../room/Room';
import { ConnectionState } from '../room/Room';
Expand Down Expand Up @@ -91,6 +91,15 @@ export class E2EEManager

private unsubscribeLogLevel?: () => void;

private log = getLogger(LoggerNames.E2EE, () => this.logContext);

get logContext() {
return {
room: this.room?.name,
participant: this.room?.localParticipant.identity,
};
}

/**
* Runs a cleanup callback once this manager is garbage collected. Lets the
* log-level listener (held in a module-global Set on the main-thread logger)
Expand Down Expand Up @@ -128,7 +137,7 @@ export class E2EEManager
'tried to setup end-to-end encryption on an unsupported browser',
);
}
log.info('setting up e2ee');
this.log.info('setting up e2ee');
if (room !== this.room) {
this.room = room;
this.setupEventListeners(room, this.keyProvider);
Expand All @@ -141,7 +150,7 @@ export class E2EEManager
},
};
if (this.worker) {
log.info(`initializing worker`, { worker: this.worker });
this.log.info(`initializing worker`, { worker: this.worker });
this.worker.onmessage = this.onWorkerMessage;
this.worker.onerror = this.onWorkerError;
this.worker.postMessage(msg);
Expand Down Expand Up @@ -223,7 +232,7 @@ export class E2EEManager
* @internal
*/
setParticipantCryptorEnabled(enabled: boolean, participantIdentity: string) {
log.debug(`set e2ee to ${enabled} for participant ${participantIdentity}`);
this.log.debug(`set e2ee to ${enabled} for participant ${participantIdentity}`);
this.postEnable(enabled, participantIdentity);
}

Expand All @@ -232,7 +241,7 @@ export class E2EEManager
*/
setSifTrailer(trailer: NonSharedUint8Array) {
if (!trailer || trailer.length === 0) {
log.warn("ignoring server sent trailer as it's empty");
this.log.warn("ignoring server sent trailer as it's empty");
} else {
this.postSifTrailer(trailer);
}
Expand All @@ -258,7 +267,7 @@ export class E2EEManager
break;
}
}
log.error(data.error.message);
this.log.error(data.error.message);
this.emit(EncryptionEvent.EncryptionError, data.error, data.participantIdentity);
break;
case 'initAck':
Expand Down Expand Up @@ -328,7 +337,7 @@ export class E2EEManager
};

private onWorkerError = (ev: ErrorEvent) => {
log.error('e2ee worker encountered an error:', { error: ev.error });
this.log.error('e2ee worker encountered an error:', { error: ev.error });
this.emit(EncryptionEvent.EncryptionError, ev.error, undefined);
};

Expand Down Expand Up @@ -575,8 +584,7 @@ export class E2EEManager
participantIdentity: string,
) {
if (!pub.trackInfo) {
log.warn('skipping e2ee enabled update for publication without trackInfo', {
participant: participantIdentity,
this.log.warn('skipping e2ee enabled update for publication without trackInfo', {
trackSid: pub.trackSid,
});
return;
Expand Down Expand Up @@ -609,7 +617,7 @@ export class E2EEManager

private setupE2EESender(track: Track, sender: RTCRtpSender) {
if (!isLocalTrack(track) || !sender) {
if (!sender) log.warn('early return because sender is not ready');
if (!sender) this.log.warn('early return because sender is not ready');
return;
}
this.handleSender(
Expand Down Expand Up @@ -725,7 +733,7 @@ export class E2EEManager
}

if (isScriptTransformSupportedForWorker()) {
log.info('initialize script transform');
this.log.info('initialize script transform');
const options: ScriptTransformOptions = {
kind: 'encode',
participantIdentity: this.room.localParticipant.identity,
Expand All @@ -737,7 +745,7 @@ export class E2EEManager
// @ts-ignore
sender.transform = new RTCRtpScriptTransform(this.worker, options);
} else {
log.info('initialize encoded streams');
this.log.info('initialize encoded streams');
// @ts-ignore
const senderStreams = sender.createEncodedStreams();
const msg: EncodeMessage = {
Expand Down
Loading