[fix] Removal of empty stylesheets created from transitions #7662
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before submitting the PR, please make sure you do the following
[feat]
,[fix]
,[chore]
, or[docs]
.Tests
npm test
and lint the project withnpm run lint
Closes
What has been changed?
The
style_manager
"cleaned up" the stylesheets it made by only clearing their rules. After clearing them, it removed them from its internal map by runningmanaged_styles.clear()
. This cleanup was not optimal - it left the style elements empty in the dom.The proposed change is to remove style-elements created by
style_manager
, instead of making them empty and letting them stay in the DOM without any references. I also refactored some of the methods from theruntime/internal/dom.ts
file that were only used by thestyle_manager
or in thedom.ts file
itself.If you want to reverse-engineer this bug yourself, then start with the
append_empty_stylesheet
method in thedom.ts
file. As long asappend_empty_stylesheet
is used, there will be bugs related to empty stylesheets. It does the following: