LibWeb: Only invalidate style for relevant links on navigation#9274
Open
tcl3 wants to merge 2 commits intoLadybirdBrowser:masterfrom
Open
LibWeb: Only invalidate style for relevant links on navigation#9274tcl3 wants to merge 2 commits intoLadybirdBrowser:masterfrom
tcl3 wants to merge 2 commits intoLadybirdBrowser:masterfrom
Conversation
Currently, this is the only pseudo class which is URL-sensitive. When we implement proper tracking of visited URLs this will need to be replaced with something more comprehensive.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Previously, updating the document URL, by clicking a href, for example, would call
respond_to_base_url_changes()which unconditionally invalidated style on the entire document, in order to update the style of any elements with pseudo classes that respond to changes in URL.Currently, :link and :visited pseudo classes do not respond to URL changes, so I've added an early escape for now, so these do not invalidate style. We now also walk over all the links in the document and figure out which one's may have changed before invalidating their style. This will obviously need to be updated when we start tracking visited URLs.
This speedup can be seen on https://en.wikipedia.org/wiki/Holy_Roman_Empire, where the time taken to navigate to a given section after clicking on a table of contents link dropped from 1.05s to 750ms on average on my machine.