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
tree: f3adc76ce89e0531dcf2b01dbdb0c9e6d601bd65
  1. third_party/