Created attachment 418151 [details]
Steps to reproduce:
1. Open https://www.liberation.fr/
2. Wait for the page to finish loading and for only 5 items to show under "Top 100" near the center of the page
3. Hover slowly over those 5 items
Notice how, as in the attached screen recording, the items don't revert back to their pre-animated state after hovering out.
I only managed to reduce the failed to this range:
Out of this range, r271584, the fix for bug 220711, seems the most likely since it's related to :hover.
Ah yes, there is a logic error in the optimization where we fail to invalidate descendants losing hover/active in some complex cases.
Created attachment 418384 [details]
Created attachment 418392 [details]
Created attachment 418409 [details]
Comment on attachment 418409 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=418409&action=review
> + Style::PseudoClassChangeInvalidation styleInvalidation(*elementsToClearActive.last(), CSSSelector::PseudoClassActive, Style::InvalidationScope::Descendants);
> + for (auto& element : elementsToClearActive)
> + element->setActive(false, false, Style::InvalidationScope::SelfChildrenAndSiblings);
Maybe share these almost-duplicate chunks with some lambdas?
> Maybe share these almost-duplicate chunks with some lambdas?
It seemed to end up looking messy since there is a bunch of varying parameters. But I'll take another look.
Committed r271930: <https://trac.webkit.org/changeset/271930>
All reviewed patches have been landed. Closing bug and clearing flags on attachment 418409 [details].
Landed early because it fixed other bugs that were blocking internal Apple work.