Skip to content

XMLHttpRequest is not defined when running emscripten-built AudioWorklet with preloaded files #15925

@paulfd

Description

@paulfd

Please include the following in your bug report:

Version of emscripten/emsdk:

emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.34 (0d24418f0eac4828f096ee070dae8472d427edaa)
clang version 14.0.0 (https://github.com/llvm/llvm-project 3d39612b3dd3f6b67ee63da305d30606abbe7287)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /home/paul/source/emsdk/upstream/bin

Failing command line in full:
Compiling/linkin works out. I compiled with --preload-file ${CMAKE_CURRENT_SOURCE_DIR}/assets in a CMake project. I do get the js file and the .data file.

Error
I use emscripten in an AudioWorklet scenario.
I would like to preload a set of files to be accessed by the C++ sources.
When loading the file however, I have the following error in the JS Chrome console:

sound-engine.wasm.js:48 Uncaught ReferenceError: XMLHttpRequest is not defined
    at fetchRemotePackage (sound-engine.wasm.js:48)
    at loadPackage (sound-engine.wasm.js:102)
    at sound-engine.wasm.js:196
    at sound-engine.wasm.js:198

I am very newb when it comes to web technologies. I wonder if this is because AudioWorklets don't really start in a javascript environment where XMLHttpRequest are available? To be clearer, I'm supposed to load the processor module through this._context.audioWorklet.addModule('./batteur-processor.js'), which in turns imports the WASM file. Maybe this addModule function doesn't provide XMLHttpRequest? Any pointer towards a solution would be appreciated! Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions