| Summary: | REGRESSION (r271584): Hovering slowly over and out of "Top 100" items on liberation.fr does not restore animated state | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Antoine Quint <graouts> | ||||||||||
| Component: | CSS | Assignee: | Nobody <webkit-unassigned> | ||||||||||
| Status: | RESOLVED FIXED | ||||||||||||
| Severity: | Normal | CC: | cdumez, changseok, cmarcelo, esprehn+autocc, ews-watchlist, gyuyoung.kim, kangil.han, koivisto, mifenton, simon.fraser, webkit-bug-importer | ||||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||||
| Version: | Safari Technology Preview | ||||||||||||
| Hardware: | Unspecified | ||||||||||||
| OS: | Unspecified | ||||||||||||
| Attachments: |
|
||||||||||||
|
Description
Antoine Quint
2021-01-22 08:52:08 PST
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]
patch
Created attachment 418392 [details]
patch
Created attachment 418409 [details]
patch
Comment on attachment 418409 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=418409&action=review > Source/WebCore/dom/Document.cpp:7234 > + 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. |