mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 00:27:41 +01:00
The COEP (Cross-Origin Embedder Policy) and COOP (Cross-Origin Opener Policy) headers are needed by EmulatorJS to use the `SharedArrayBuffer` feature, and enable multi-threaded cores. These headers are only being set by Nginx for responses to requests made to the EmulatorJS player path. This is because cross-origin isolation breaks other features in the application (such as YouTube embeds), so we only want to enable it for the EmulatorJS player. It's important to mention that this change does not work when `DEV_MODE` is set, as we would need Vite server to also set these headers in that case. This could be implemented separately, if needed. These changes are not enough to enable multi-threaded cores in the frontend. Because our application is a SPA, we also need to ensure that navigation to the EmulatorJS player path results in a full page reload, so that the cross-origin isolation can be applied. This will be handled in a separate PR.