Reduce video rooms log spam (#22665)

If you forget to call preventDefault in widget action handlers,
matrix-widget-api logs a bunch of errors complaining that the action is
unsupported/unhandled, even if it isn't.
This commit is contained in:
Robin 2022-06-27 15:30:56 -04:00 committed by GitHub
parent 5f176fa9a6
commit feccdec581
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -98,8 +98,8 @@ const ack = (ev: CustomEvent<IWidgetApiRequest>) => widgetApi.transport.reply(ev
new Promise<void>(resolve => { new Promise<void>(resolve => {
widgetApi.once(`action:${ElementWidgetActions.ClientReady}`, ev => { widgetApi.once(`action:${ElementWidgetActions.ClientReady}`, ev => {
ev.preventDefault(); ev.preventDefault();
widgetApi.transport.reply(ev.detail, {});
resolve(); resolve();
widgetApi.transport.reply(ev.detail, {});
}); });
}), }),
new Promise<void>(resolve => { new Promise<void>(resolve => {
@ -145,6 +145,7 @@ const ack = (ev: CustomEvent<IWidgetApiRequest>) => widgetApi.transport.reply(ev
widgetApi.on(`action:${ElementWidgetActions.JoinCall}`, widgetApi.on(`action:${ElementWidgetActions.JoinCall}`,
(ev: CustomEvent<IWidgetApiRequest>) => { (ev: CustomEvent<IWidgetApiRequest>) => {
ev.preventDefault();
const { audioDevice, videoDevice } = ev.detail.data; const { audioDevice, videoDevice } = ev.detail.data;
joinConference(audioDevice as string | null, videoDevice as string | null); joinConference(audioDevice as string | null, videoDevice as string | null);
ack(ev); ack(ev);
@ -152,12 +153,14 @@ const ack = (ev: CustomEvent<IWidgetApiRequest>) => widgetApi.transport.reply(ev
); );
widgetApi.on(`action:${ElementWidgetActions.HangupCall}`, widgetApi.on(`action:${ElementWidgetActions.HangupCall}`,
(ev: CustomEvent<IWidgetApiRequest>) => { (ev: CustomEvent<IWidgetApiRequest>) => {
ev.preventDefault();
meetApi?.executeCommand('hangup'); meetApi?.executeCommand('hangup');
ack(ev); ack(ev);
}, },
); );
widgetApi.on(`action:${ElementWidgetActions.ForceHangupCall}`, widgetApi.on(`action:${ElementWidgetActions.ForceHangupCall}`,
(ev: CustomEvent<IWidgetApiRequest>) => { (ev: CustomEvent<IWidgetApiRequest>) => {
ev.preventDefault();
meetApi?.dispose(); meetApi?.dispose();
notifyHangup(); notifyHangup();
meetApi = null; meetApi = null;
@ -167,38 +170,43 @@ const ack = (ev: CustomEvent<IWidgetApiRequest>) => widgetApi.transport.reply(ev
); );
widgetApi.on(`action:${ElementWidgetActions.MuteAudio}`, widgetApi.on(`action:${ElementWidgetActions.MuteAudio}`,
async (ev: CustomEvent<IWidgetApiRequest>) => { async (ev: CustomEvent<IWidgetApiRequest>) => {
ack(ev); ev.preventDefault();
if (meetApi && !await meetApi.isAudioMuted()) { if (meetApi && !await meetApi.isAudioMuted()) {
meetApi.executeCommand('toggleAudio'); meetApi.executeCommand('toggleAudio');
} }
ack(ev);
}, },
); );
widgetApi.on(`action:${ElementWidgetActions.UnmuteAudio}`, widgetApi.on(`action:${ElementWidgetActions.UnmuteAudio}`,
async (ev: CustomEvent<IWidgetApiRequest>) => { async (ev: CustomEvent<IWidgetApiRequest>) => {
ack(ev); ev.preventDefault();
if (meetApi && await meetApi.isAudioMuted()) { if (meetApi && await meetApi.isAudioMuted()) {
meetApi.executeCommand('toggleAudio'); meetApi.executeCommand('toggleAudio');
} }
ack(ev);
}, },
); );
widgetApi.on(`action:${ElementWidgetActions.MuteVideo}`, widgetApi.on(`action:${ElementWidgetActions.MuteVideo}`,
async (ev: CustomEvent<IWidgetApiRequest>) => { async (ev: CustomEvent<IWidgetApiRequest>) => {
ack(ev); ev.preventDefault();
if (meetApi && !await meetApi.isVideoMuted()) { if (meetApi && !await meetApi.isVideoMuted()) {
meetApi.executeCommand('toggleVideo'); meetApi.executeCommand('toggleVideo');
} }
ack(ev);
}, },
); );
widgetApi.on(`action:${ElementWidgetActions.UnmuteVideo}`, widgetApi.on(`action:${ElementWidgetActions.UnmuteVideo}`,
async (ev: CustomEvent<IWidgetApiRequest>) => { async (ev: CustomEvent<IWidgetApiRequest>) => {
ack(ev); ev.preventDefault();
if (meetApi && await meetApi.isVideoMuted()) { if (meetApi && await meetApi.isVideoMuted()) {
meetApi.executeCommand('toggleVideo'); meetApi.executeCommand('toggleVideo');
} }
ack(ev);
}, },
); );
widgetApi.on(`action:${ElementWidgetActions.StartLiveStream}`, widgetApi.on(`action:${ElementWidgetActions.StartLiveStream}`,
(ev: CustomEvent<IWidgetApiRequest>) => { (ev: CustomEvent<IWidgetApiRequest>) => {
ev.preventDefault();
if (meetApi) { if (meetApi) {
meetApi.executeCommand('startRecording', { meetApi.executeCommand('startRecording', {
mode: 'stream', mode: 'stream',