-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Go back one page freezes the WASM runtime #10328
Comments
This is due to a browser feature called "bfcache": https://web.dev/articles/bfcache When going back, the browser is not actually reloading the previous page but reuse directly an in memory cache of the page with "frozen" javascript callback / promises. This is not supported by Bevy, I'll try to look into what can be done (short task list: check js events are forwarded by winit, and try to react to them in Bevy, maybe like for Android suspend / resume. help is welcome!). In the meantime, you can set js event listeners on your page destroying the canvas and recreating it when the page is reloaded from the bfcache, it should restart Bevy |
Thanks for the useful pointers and the link! I'll study the event listeners route. |
This is a workaround for the app freezing because of bfcache (see bevyengine/bevy#10328).
This was addressed by Winit in rust-windowing/winit#2851 and rust-windowing/winit#2912 and should just work for Bevy after #8745. Correct handling of the |
Bevy version
0.11.3
Relevant system information
Running WASM on firefox on WASM:
wasm-bindgen v0.2.87
,web-sys v0.3.64
. Chromium also reproduces this issue.What went wrong
Clicking on a link and then "Go back one page" in the browser returns to a frozen bevy app on WASM.
This does not happen with, for instance, egui, so I think it is not an upstream wasm-bindgen bug (?).
The issue can be reproduced:
Workaround
I am making my links open in a new tab but the workaround is not desirable since I have to implement a specialized
Hyperlink
struct for egui which is a lot of boilerplate for a link :(.The text was updated successfully, but these errors were encountered: