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
window.hashchange
events are unthrottled
#32118
Comments
This originates at servo/components/constellation/constellation.rs Line 4532 in bef6c29
Which I think happens in response to handling servo/components/constellation/constellation.rs Line 3676 in bef6c29
Interesting to note: we still have the pipeline, but the browsing context is already gone. The servo/components/script/dom/window.rs Line 2232 in bef6c29
Which is called into from servo/components/script/dom/location.rs Line 128 in bef6c29
Besides the non-existent rate-limiting, the question is why do we not handle the exit message from the constellation, apparently handling the task messages first? The constellation exit workflow starts at servo/components/constellation/constellation.rs Line 2592 in bef6c29
|
Describe the bug:
It's possible to prevent Servo from shutting down cleanly by defining an infinite loop in javascript based on event listeners.
Example:
When executing this in Servo, the events are processed until attempting to exit, then there is a period where
notify_history_changed
errors are logged (with warnings on).Chromium doesn't appear to log anything when this file is opened.
Firefox presents a throttle warning, via rate limiting:
Servo example:
output.mp4
To Reproduce:
Copy the above code to a html file and execute it with Servo with LOG_LEVEL warn.
Platform:
OSX/Sonoma 13.4.1
WPT Test
As an aside, this technique is used in a WPT test,.
The text was updated successfully, but these errors were encountered: