[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 testand lint the project withnpm run lintCloses
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.tsfile that were only used by thestyle_manageror in thedom.ts fileitself.If you want to reverse-engineer this bug yourself, then start with the
append_empty_stylesheetmethod in thedom.tsfile. As long asappend_empty_stylesheetis used, there will be bugs related to empty stylesheets. It does the following: