Stop explicit inheritance if LayoutStyle doesn't change.

Propagation of explicitly inherited properties down the tree is not
necessary when LayoutStyle does not change, so start comparing LayoutStyle
before checking the explicitInheritance flag.

The LayoutStyle comparison should not include the explicitInheritance flag
as that typically results in a propagation diff caused by that flag being
unset on new LayoutStyle instances before any children get their styles
calculated.

The assumption is that it is not relevant in other uses of
LayoutStyle::operator==, either. In particular, also the comparison with
baseRenderStyle in the ASSERT in ActiveAnimations::updateBaseLayoutStyle.

The explicitInheritance flag is also skipped for copyNonInheritedFrom.
The reason is that it's only used for sharing non-inherited properties
between elements which don't have the same children, hence should not
share that flag either.

BUG=435450

Review URL: https://codereview.chromium.org/921843004

git-svn-id: svn://svn.chromium.org/blink/trunk@190990 bbb929c8-8fbe-4397-9dbb-9b2b20218538
11 files changed
tree: 1e9688fa9bcfb8e9402247fe67ab14a9ba018874
  1. third_party/