Merge pull request #97645 from adamscott/fix-pwa-reloading-page

Fix web export infinite reload issue
This commit is contained in:
Rémi Verschelde 2024-10-02 15:01:16 +02:00
commit 6388314dcc
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 11 additions and 4 deletions

View File

@ -164,10 +164,11 @@ const engine = new Engine(GODOT_CONFIG);
new Promise((resolve) => {
setTimeout(() => resolve(), 2000);
}),
]).catch((err) => {
console.error('Error while registering service worker:', err);
}).then(() => {
]).then(() => {
// Reload if there was no error.
window.location.reload();
}).catch((err) => {
console.error('Error while registering service worker:', err);
});
} else {
// Display the message as usual

View File

@ -214,6 +214,9 @@ Error EditorExportPlatformWeb::_add_manifest_icon(const String &p_path, const St
}
Error EditorExportPlatformWeb::_build_pwa(const Ref<EditorExportPreset> &p_preset, const String p_path, const Vector<SharedObject> &p_shared_objects) {
List<String> preset_features;
get_preset_features(p_preset, &preset_features);
String proj_name = GLOBAL_GET("application/config/name");
if (proj_name.is_empty()) {
proj_name = "Godot Game";
@ -239,7 +242,10 @@ Error EditorExportPlatformWeb::_build_pwa(const Ref<EditorExportPreset> &p_prese
cache_files.push_back(name + ".icon.png");
cache_files.push_back(name + ".apple-touch-icon.png");
}
cache_files.push_back(name + ".worker.js");
if (preset_features.find("threads")) {
cache_files.push_back(name + ".worker.js");
}
cache_files.push_back(name + ".audio.worklet.js");
cache_files.push_back(name + ".audio.position.worklet.js");
replaces["___GODOT_CACHE___"] = Variant(cache_files).to_json_string();