Use LocalStyleChange for :hover/:active not affected by descendants.
Before this change, an element that changes its hover/active state would have
its subtree recalculated even if none of its descendants were affected by that
change in hover/active state.
childrenAffectedByHover/Active will still cause a subtree recalc. The reason
is that elements with that flags set will have selectors of type:
div:hover span { ... }
where a change in the hover state of a div will affect an unknown number of
span elements in its subtree. Elements with affectedByHover/Active and no
childrenAffectedByHover/Active will only match selectors where the :hover or
:active pseudo class is in the rightmost sub-selector. Those can use
LocalStyleChange recalcs since none of the descendants will match affected
selectors.
This CL depends on https://codereview.chromium.org/144963002/
R=esprehn
BUG=337983
Review URL: https://codereview.chromium.org/148243004
git-svn-id: svn://svn.chromium.org/blink/trunk@166387 bbb929c8-8fbe-4397-9dbb-9b2b20218538
3 files changed