diff options
| author | Leon Krause | 2018-05-10 13:30:29 +0200 |
|---|---|---|
| committer | Leon Krause | 2018-05-10 14:50:34 +0200 |
| commit | 32eb3e1b7d2aa6010f154d8b4850357f5a11662a (patch) | |
| tree | 523402c348c4bdf53cd224cb5a053bf1a3805600 /platform/javascript | |
| parent | 0f930f831410bc57d0e975b4ab73715d0d034735 (diff) | |
| download | godot-32eb3e1b7d2aa6010f154d8b4850357f5a11662a.tar.gz godot-32eb3e1b7d2aa6010f154d8b4850357f5a11662a.tar.zst godot-32eb3e1b7d2aa6010f154d8b4850357f5a11662a.zip | |
Add Engine.setWebAssemblyFilenameExtension()
Some web game hosts only allow certain filename extensions. If .wasm is
not allowed, this function allows overriding the WebAssembly filename
extension to work around that restriction.
Diffstat (limited to 'platform/javascript')
| -rw-r--r-- | platform/javascript/engine.js | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/platform/javascript/engine.js b/platform/javascript/engine.js index e4839af43..0c1337cc3 100644 --- a/platform/javascript/engine.js +++ b/platform/javascript/engine.js @@ -10,6 +10,7 @@ var DOWNLOAD_ATTEMPTS_MAX = 4; var basePath = null; + var wasmFilenameExtensionOverride = null; var engineLoadPromise = null; var loadingFiles = {}; @@ -299,6 +300,14 @@ return !!testContext; }; + Engine.setWebAssemblyFilenameExtension = function(override) { + + if (String(override).length === 0) { + throw new Error('Invalid WebAssembly filename extension override'); + } + wasmFilenameExtensionOverride = String(override); + } + Engine.load = function(newBasePath) { if (newBasePath !== undefined) basePath = getBasePath(newBasePath); @@ -306,7 +315,7 @@ if (typeof WebAssembly !== 'object') return Promise.reject(new Error("Browser doesn't support WebAssembly")); // TODO cache/retrieve module to/from idb - engineLoadPromise = loadPromise(basePath + '.wasm').then(function(xhr) { + engineLoadPromise = loadPromise(basePath + '.' + (wasmFilenameExtensionOverride || 'wasm')).then(function(xhr) { return xhr.response; }); engineLoadPromise = engineLoadPromise.catch(function(err) { |
