What happened?
Hi, when we use the API that creates an iframe. We got the error "Logger.js:155 2025-08-08T13:30:15.371Z [features/recording] Capture failed SecurityError: Failed to execute 'showSaveFilePicker' on 'Window': Cross origin sub frames aren't allowed to show a file picker. at Object.startLocalRecording LocalRecordingManager.web.ts:112:40)" and did a lot of changes in the origin server and de the destiny server, but it's the same. Finally, we thing that a change like this could work:
`async startLocalRecording(store, onlySelf) {
const { dispatch, getState } = store;
this.roomName = getRoomName(getState()) ?? '';
// Función para solicitar al padre la selección del archivo
const requestFileHandleFromParent = () => {
return new Promise((resolve, reject) => {
const messageHandler = event => {
if (event.source === window.parent && event.data && event.data.type === 'fileHandleResponse') {
window.removeEventListener('message', messageHandler);
if (event.data.fileHandle) {
resolve(event.data.fileHandle);
} else {
reject(new Error('No file handle received from parent'));
}
}
};
window.addEventListener('message', messageHandler);
window.parent.postMessage({ type: 'requestFileHandle' }, '*');
});
};
// Obtener un handle al archivo donde escribir
let options = {
startIn: 'downloads',
suggestedName: `${this.getFilename()}.webm`,
};
try {
if (window.self !== window.top) {
// Estamos en un iframe, solicitar al padre el fileHandle
this.fileHandle = await requestFileHandleFromParent();
} else {
// No estamos en iframe, usar showSaveFilePicker normalmente
this.fileHandle = await window.showSaveFilePicker(options);
}
this.writableStream = await this.fileHandle?.createWritable();
} catch (e) {
nwUtils.print('No se pudo obtener el handle del archivo:', e);
throw e;
}
` continue the function whitout changes. Thanks to start an open discussion about that.
https://github.com/jitsi/jitsi-meet/blob/master/react/features/recording/components/Recording/LocalRecordingManager.web.ts
Platform
Browser / app / sdk version
Google Chome Version 137.0.7151.119 (Official Build) (64-bit)
Relevant log output
Logger.js:155 2025-08-08T13:30:15.371Z [features/recording] Capture failed SecurityError: Failed to execute 'showSaveFilePicker' on 'Window': Cross origin sub frames aren't allowed to show a file picker.
at Object.startLocalRecording (LocalRecordingManager.web.ts:112:40)
at middleware.ts:79:35
at middleware.ts:28:12
at middleware.ts:155:12
at middleware.ts:7:20
at middleware.ts:55:20
at middleware.ts:22:12
at middleware.ts:66:12
at middleware.ts:50:20
at middleware.web.ts:35:12
at middleware.web.ts:19:12
at middleware.any.ts:52:20
at middleware.ts:60:12
at middleware.web.ts:273:22
at middleware.ts:48:12
at middleware.ts:21:12
at middleware.ts:11:20
at middleware.ts:18:12
at middleware.web.ts:31:12
at middleware.any.ts:39:20
Reproducibility
More details?
No response
What happened?
Hi, when we use the API that creates an iframe. We got the error "Logger.js:155 2025-08-08T13:30:15.371Z [features/recording] Capture failed SecurityError: Failed to execute 'showSaveFilePicker' on 'Window': Cross origin sub frames aren't allowed to show a file picker. at Object.startLocalRecording LocalRecordingManager.web.ts:112:40)" and did a lot of changes in the origin server and de the destiny server, but it's the same. Finally, we thing that a change like this could work:
`async startLocalRecording(store, onlySelf) {
const { dispatch, getState } = store;
this.roomName = getRoomName(getState()) ?? '';
` continue the function whitout changes. Thanks to start an open discussion about that.
https://github.com/jitsi/jitsi-meet/blob/master/react/features/recording/components/Recording/LocalRecordingManager.web.ts
Platform
Browser / app / sdk version
Google Chome Version 137.0.7151.119 (Official Build) (64-bit)
Relevant log output
Reproducibility
More details?
No response