Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(738)

Unified Diff: third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp

Issue 2399633003: reflow comments in core/css/resolver (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
index a0447552048e19013937195f23296082208df196..e45ab06a37674c55a9154f5a0cc8e69ae3bf4e62 100644
--- a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
@@ -2,10 +2,12 @@
* Copyright (C) 1999 Lars Knoll (knoll@kde.org)
* (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com)
* Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com)
- * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
+ * All rights reserved.
* Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
* Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org>
- * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
+ * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved.
+ * (http://www.torchmobile.com/)
* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
* Copyright (C) Research In Motion Limited 2011. All rights reserved.
* Copyright (C) 2012 Google Inc. All rights reserved.
@@ -98,8 +100,9 @@ namespace {
using namespace blink;
void setAnimationUpdateIfNeeded(StyleResolverState& state, Element& element) {
- // If any changes to CSS Animations were detected, stash the update away for application after the
- // layout object is updated if we're in the appropriate scope.
+ // If any changes to CSS Animations were detected, stash the update away for
+ // application after the layout object is updated if we're in the appropriate
+ // scope.
if (!state.animationUpdate().isEmpty())
element.ensureElementAnimations().cssAnimations().setPendingUpdate(
state.animationUpdate());
@@ -109,7 +112,8 @@ void setAnimationUpdateIfNeeded(StyleResolverState& state, Element& element) {
bool cacheCustomPropertiesForApplyAtRules(StyleResolverState& state,
const MatchedPropertiesRange& range) {
bool ruleSetsCustomProperty = false;
- // TODO(timloh): @apply should also work with properties registered as non-inherited.
+ // TODO(timloh): @apply should also work with properties registered as
+ // non-inherited.
if (!state.style()->inheritedVariables())
return false;
for (const auto& matchedProperties : range) {
@@ -272,8 +276,9 @@ void StyleResolver::appendPendingAuthorStyleSheets() {
void StyleResolver::appendAuthorStyleSheets(
const HeapVector<Member<CSSStyleSheet>>& styleSheets) {
- // This handles sheets added to the end of the stylesheet list only. In other cases the style resolver
- // needs to be reconstructed. To handle insertions too the rule order numbers would need to be updated.
+ // This handles sheets added to the end of the stylesheet list only. In other
+ // cases the style resolver needs to be reconstructed. To handle insertions
+ // too the rule order numbers would need to be updated.
for (const auto& styleSheet : styleSheets)
appendCSSStyleSheet(*styleSheet);
}
@@ -336,9 +341,9 @@ static RuleSet* makeRuleSet(const HeapVector<RuleFeature>& rules) {
void StyleResolver::collectFeatures() {
m_features.clear();
- // Collect all ids and rules using sibling selectors (:first-child and similar)
- // in the current set of stylesheets. Style sharing code uses this information to reject
- // sharing candidates.
+ // Collect all ids and rules using sibling selectors (:first-child and
+ // similar) in the current set of stylesheets. Style sharing code uses this
+ // information to reject sharing candidates.
CSSDefaultStyleSheets& defaultStyleSheets = CSSDefaultStyleSheets::instance();
if (defaultStyleSheets.defaultStyle()) {
m_features.add(defaultStyleSheets.defaultStyle()->features());
@@ -379,8 +384,8 @@ void StyleResolver::addToStyleSharingList(Element& element) {
StyleSharingList& StyleResolver::styleSharingList() {
m_styleSharingLists.resize(styleSharingMaxDepth);
- // We never put things at depth 0 into the list since that's only the <html> element
- // and it has no siblings or cousins to share with.
+ // We never put things at depth 0 into the list since that's only the <html>
+ // element and it has no siblings or cousins to share with.
unsigned depth =
std::max(std::min(m_styleSharingDepth, styleSharingMaxDepth), 1u) - 1u;
@@ -395,15 +400,16 @@ void StyleResolver::clearStyleSharingList() {
static inline ScopedStyleResolver* scopedResolverFor(const Element& element) {
// Ideally, returning element->treeScope().scopedStyleResolver() should be
- // enough, but ::cue and custom pseudo elements like ::-webkit-meter-bar pierce
- // through a shadow dom boundary, yet they are not part of m_treeBoundaryCrossingScopes.
- // The assumption here is that these rules only pierce through one boundary and
- // that the scope of these elements do not have a style resolver due to the fact
- // that VTT scopes and UA shadow trees don't have <style> elements. This is
- // backed up by the ASSERTs below.
+ // enough, but ::cue and custom pseudo elements like ::-webkit-meter-bar
+ // pierce through a shadow dom boundary, yet they are not part of
+ // m_treeBoundaryCrossingScopes. The assumption here is that these rules only
+ // pierce through one boundary and that the scope of these elements do not
+ // have a style resolver due to the fact that VTT scopes and UA shadow trees
+ // don't have <style> elements. This is backed up by the ASSERTs below.
//
- // FIXME: Make ::cue and custom pseudo elements part of boundary crossing rules
- // when moving those rules to ScopedStyleResolver as part of issue 401359.
+ // FIXME: Make ::cue and custom pseudo elements part of boundary crossing
+ // rules when moving those rules to ScopedStyleResolver as part of issue
+ // 401359.
TreeScope* treeScope = &element.treeScope();
if (ScopedStyleResolver* resolver = treeScope->scopedStyleResolver()) {
@@ -483,9 +489,9 @@ static bool shouldCheckScope(const Element& element,
const Node& scopingNode,
bool isInnerTreeScope) {
if (isInnerTreeScope && element.treeScope() != scopingNode.treeScope()) {
- // Check if |element| may be affected by a ::content rule in |scopingNode|'s style.
- // If |element| is a descendant of a shadow host which is ancestral to |scopingNode|,
- // the |element| should be included for rule collection.
+ // Check if |element| may be affected by a ::content rule in |scopingNode|'s
+ // style. If |element| is a descendant of a shadow host which is ancestral
+ // to |scopingNode|, the |element| should be included for rule collection.
// Skip otherwise.
const TreeScope* scope = &scopingNode.treeScope();
while (scope && scope->parentTreeScope() != &element.treeScope())
@@ -494,15 +500,15 @@ static bool shouldCheckScope(const Element& element,
return shadowHost && element.isDescendantOf(shadowHost);
}
- // When |element| can be distributed to |scopingNode| via <shadow>, ::content rule can match,
- // thus the case should be included.
+ // When |element| can be distributed to |scopingNode| via <shadow>, ::content
+ // rule can match, thus the case should be included.
if (!isInnerTreeScope &&
scopingNode.parentOrShadowHostNode() ==
element.treeScope().rootNode().parentOrShadowHostNode())
return true;
- // Obviously cases when ancestor scope has /deep/ or ::shadow rule should be included.
- // Skip otherwise.
+ // Obviously cases when ancestor scope has /deep/ or ::shadow rule should be
+ // included. Skip otherwise.
return scopingNode.treeScope()
.scopedStyleResolver()
->hasDeepOrShadowSelector();
@@ -541,10 +547,11 @@ void StyleResolver::matchScopedRules(const Element& element,
scope.isInclusiveAncestorOf(element.containingTreeScope())) {
matchElementScopeDone = true;
- // At this point, the iterator has either encountered the scope for the element
- // itself (if that scope has boundary-crossing rules), or the iterator has moved
- // to a scope which appears before the element's scope in the tree-of-trees order.
- // Try to match all rules from the element's scope.
+ // At this point, the iterator has either encountered the scope for the
+ // element itself (if that scope has boundary-crossing rules), or the
+ // iterator has moved to a scope which appears before the element's scope
+ // in the tree-of-trees order. Try to match all rules from the element's
+ // scope.
matchElementScopeRules(element, elementScopeResolver, collector);
if (resolver == elementScopeResolver) {
@@ -592,7 +599,8 @@ void StyleResolver::matchAuthorRulesV0(const Element& element,
if (ScopedStyleResolver* resolver = scopedResolverFor(element))
resolver->collectMatchingAuthorRules(collector, ++cascadeOrder);
- // Apply /deep/ and ::shadow rules from outer scopes, and ::content from inner.
+ // Apply /deep/ and ::shadow rules from outer scopes, and ::content from
+ // inner.
collectTreeBoundaryCrossingRules(element, collector);
collector.sortAndTransferMatchedRules();
}
@@ -610,7 +618,8 @@ void StyleResolver::matchUARules(ElementRuleCollector& collector) {
if (document().inQuirksMode())
matchRuleSet(collector, defaultStyleSheets.defaultQuirksStyle());
- // If document uses view source styles (in view source mode or in xml viewer mode), then we match rules from the view source style sheet.
+ // If document uses view source styles (in view source mode or in xml viewer
+ // mode), then we match rules from the view source style sheet.
if (document().isViewSource())
matchRuleSet(collector, defaultStyleSheets.defaultViewSourceStyle());
@@ -630,14 +639,16 @@ void StyleResolver::matchAllRules(StyleResolverState& state,
bool includeSMILProperties) {
matchUARules(collector);
- // Now check author rules, beginning first with presentational attributes mapped from HTML.
+ // Now check author rules, beginning first with presentational attributes
+ // mapped from HTML.
if (state.element()->isStyledElement()) {
collector.addElementStyleProperties(
state.element()->presentationAttributeStyle());
// Now we check additional mapped declarations.
- // Tables and table cells share an additional mapped rule that must be applied
- // after all attributes, since their mapped style depends on the values of multiple attributes.
+ // Tables and table cells share an additional mapped rule that must be
+ // applied after all attributes, since their mapped style depends on the
+ // values of multiple attributes.
collector.addElementStyleProperties(
state.element()->additionalPresentationAttributeStyle());
@@ -658,7 +669,8 @@ void StyleResolver::matchAllRules(StyleResolverState& state,
matchAuthorRules(*state.element(), collector);
if (state.element()->isStyledElement()) {
- // For Shadow DOM V1, inline style is already collected in matchScopedRules().
+ // For Shadow DOM V1, inline style is already collected in
+ // matchScopedRules().
if (document().shadowCascadeOrder() !=
ShadowCascadeOrder::ShadowCascadeV1 &&
state.element()->inlineStyle()) {
@@ -691,8 +703,8 @@ void StyleResolver::collectTreeBoundaryCrossingRules(
CascadeOrder innerCascadeOrder = m_treeBoundaryCrossingScopes.size();
for (const auto& scopingNode : m_treeBoundaryCrossingScopes) {
- // Skip rule collection for element when tree boundary crossing rules of scopingNode's
- // scope can never apply to it.
+ // Skip rule collection for element when tree boundary crossing rules of
+ // scopingNode's scope can never apply to it.
bool isInnerTreeScope = element.containingTreeScope().isInclusiveAncestorOf(
scopingNode->containingTreeScope());
if (!shouldCheckScope(element, *scopingNode, isInnerTreeScope))
@@ -725,9 +737,9 @@ PassRefPtr<ComputedStyle> StyleResolver::styleForDocument(Document& document) {
documentStyle->setIsStackingContext(true);
documentStyle->setUserModify(document.inDesignMode() ? READ_WRITE
: READ_ONLY);
- // These are designed to match the user-agent stylesheet values for the document element
- // so that the common case doesn't need to create a new ComputedStyle in
- // Document::inheritHtmlAndBodyElementStyles.
+ // These are designed to match the user-agent stylesheet values for the
+ // document element so that the common case doesn't need to create a new
+ // ComputedStyle in Document::inheritHtmlAndBodyElementStyles.
documentStyle->setDisplay(EDisplay::Block);
documentStyle->setPosition(AbsolutePosition);
@@ -757,8 +769,9 @@ PassRefPtr<ComputedStyle> StyleResolver::styleForElement(
ASSERT(!hasPendingAuthorStyleSheets());
ASSERT(!m_needCollectFeatures);
- // Once an element has a layoutObject, we don't try to destroy it, since otherwise the layoutObject
- // will vanish if a style recalc happens during loading.
+ // Once an element has a layoutObject, we don't try to destroy it, since
+ // otherwise the layoutObject will vanish if a style recalc happens during
+ // loading.
if (sharingBehavior == AllowStyleSharing && !document().isRenderingReady() &&
!element->layoutObject()) {
if (!s_styleNotYetAvailable) {
@@ -865,8 +878,10 @@ PassRefPtr<ComputedStyle> StyleResolver::styleForElement(
if (element->computedStyle() &&
element->computedStyle()->textAutosizingMultiplier() !=
state.style()->textAutosizingMultiplier()) {
- // Preserve the text autosizing multiplier on style recalc. Autosizer will update it during layout if needed.
- // NOTE: this must occur before applyMatchedProperties for correct computation of font-relative lengths.
+ // Preserve the text autosizing multiplier on style recalc. Autosizer will
+ // update it during layout if needed.
+ // NOTE: this must occur before applyMatchedProperties for correct
+ // computation of font-relative lengths.
state.style()->setTextAutosizingMultiplier(
element->computedStyle()->textAutosizingMultiplier());
state.style()->setUnique();
@@ -889,9 +904,10 @@ PassRefPtr<ComputedStyle> StyleResolver::styleForElement(
INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), baseStylesUsed, 1);
}
- // FIXME: The CSSWG wants to specify that the effects of animations are applied before
- // important rules, but this currently happens here as we require adjustment to have happened
- // before deciding which properties to transition.
+ // FIXME: The CSSWG wants to specify that the effects of animations are
+ // applied before important rules, but this currently happens here as we
+ // require adjustment to have happened before deciding which properties to
+ // transition.
if (applyAnimatedProperties(state, element)) {
INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), stylesAnimated, 1);
adjustComputedStyle(state, element);
@@ -912,14 +928,16 @@ PassRefPtr<ComputedStyle> StyleResolver::styleForElement(
return state.takeStyle();
}
-// TODO(alancutter): Create compositor keyframe values directly instead of intermediate AnimatableValues.
+// TODO(alancutter): Create compositor keyframe values directly instead of
+// intermediate AnimatableValues.
PassRefPtr<AnimatableValue> StyleResolver::createAnimatableValueSnapshot(
Element& element,
const ComputedStyle& baseStyle,
const ComputedStyle* parentStyle,
CSSPropertyID property,
const CSSValue* value) {
- // TODO(alancutter): Avoid creating a StyleResolverState just to apply a single value on a ComputedStyle.
+ // TODO(alancutter): Avoid creating a StyleResolverState just to apply a
+ // single value on a ComputedStyle.
StyleResolverState state(element.document(), &element, parentStyle);
state.setStyle(ComputedStyle::clone(baseStyle));
if (value) {
@@ -1048,9 +1066,10 @@ bool StyleResolver::pseudoStyleForElementInternal(
elementAnimations->updateBaseComputedStyle(state.style());
}
- // FIXME: The CSSWG wants to specify that the effects of animations are applied before
- // important rules, but this currently happens here as we require adjustment to have happened
- // before deciding which properties to transition.
+ // FIXME: The CSSWG wants to specify that the effects of animations are
+ // applied before important rules, but this currently happens here as we
+ // require adjustment to have happened before deciding which properties to
+ // transition.
if (applyAnimatedProperties(state, pseudoElement))
adjustComputedStyle(state, 0);
@@ -1090,10 +1109,8 @@ PassRefPtr<ComputedStyle> StyleResolver::pseudoStyleForElement(
PassRefPtr<ComputedStyle> StyleResolver::styleForPage(int pageIndex) {
ASSERT(!hasPendingAuthorStyleSheets());
- StyleResolverState state(
- document(),
- document()
- .documentElement()); // m_rootElementStyle will be set to the document style.
+ // m_rootElementStyle will be set to the document style.
+ StyleResolverState state(document(), document().documentElement());
RefPtr<ComputedStyle> style = ComputedStyle::create();
const ComputedStyle* rootElementStyle = state.rootElementStyle()
@@ -1201,7 +1218,8 @@ void StyleResolver::collectPseudoRulesForElement(
}
// -------------------------------------------------------------------------------------
-// this is mostly boring stuff on how to apply a certain rule to the Computedstyle...
+// this is mostly boring stuff on how to apply a certain rule to the
+// Computedstyle...
bool StyleResolver::applyAnimatedProperties(StyleResolverState& state,
const Element* animatingElement) {
@@ -1284,7 +1302,8 @@ void StyleResolver::applyAnimatedProperties(
StyleResolverState& state,
const ActiveInterpolationsMap& activeInterpolationsMap) {
// TODO(alancutter): Don't apply presentation attribute animations here,
- // they should instead apply in SVGElement::collectStyleForPresentationAttribute().
+ // they should instead apply in
+ // SVGElement::collectStyleForPresentationAttribute().
for (const auto& entry : activeInterpolationsMap) {
CSSPropertyID property = entry.key.isCSSProperty()
? entry.key.cssProperty()
@@ -1296,7 +1315,8 @@ void StyleResolver::applyAnimatedProperties(
InterpolationEnvironment environment(state);
InvalidatableInterpolation::applyStack(entry.value, environment);
} else {
- // TODO(alancutter): Remove this old code path once animations have completely migrated to InterpolationTypes.
+ // TODO(alancutter): Remove this old code path once animations have
+ // completely migrated to InterpolationTypes.
toStyleInterpolation(interpolation).apply(state);
}
}
@@ -1474,7 +1494,8 @@ static bool shouldIgnoreTextTrackAuthorStyle(const Document& document) {
Settings* settings = document.settings();
if (!settings)
return false;
- // Ignore author specified settings for text tracks when any of the user settings are present.
+ // Ignore author specified settings for text tracks when any of the user
+ // settings are present.
if (!settings->textTrackBackgroundColor().isEmpty() ||
!settings->textTrackFontFamily().isEmpty() ||
!settings->textTrackFontStyle().isEmpty() ||
@@ -1598,9 +1619,10 @@ void StyleResolver::applyProperties(
continue;
if (inheritedOnly && !current.isInherited()) {
- // If the property value is explicitly inherited, we need to apply further non-inherited properties
- // as they might override the value inherited here. For this reason we don't allow declarations with
- // explicitly inherited properties to be cached.
+ // If the property value is explicitly inherited, we need to apply further
+ // non-inherited properties as they might override the value inherited
+ // here. For this reason we don't allow declarations with explicitly
+ // inherited properties to be cached.
DCHECK(!current.value().isInheritedValue());
continue;
}
@@ -1623,7 +1645,8 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
if (state.style()->insideLink() != NotInsideLink) {
for (const auto& matchedProperties : range) {
unsigned linkMatchType = matchedProperties.m_types.linkMatchType;
- // FIXME: It would be nicer to pass these as arguments but that requires changes in many places.
+ // FIXME: It would be nicer to pass these as arguments but that requires
+ // changes in many places.
state.setApplyPropertyToRegularStyle(linkMatchType &
CSSSelector::MatchLink);
state.setApplyPropertyToVisitedLinkStyle(linkMatchType &
@@ -1684,9 +1707,11 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
if (cachedMatchedProperties && MatchedPropertiesCache::isCacheable(state)) {
INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(),
matchedPropertyCacheHit, 1);
- // We can build up the style by copying non-inherited properties from an earlier style object built using the same exact
- // style declarations. We then only need to apply the inherited properties, if any, as their values can depend on the
- // element context. This is fast and saves memory by reusing the style data structures.
+ // We can build up the style by copying non-inherited properties from an
+ // earlier style object built using the same exact style declarations. We
+ // then only need to apply the inherited properties, if any, as their values
+ // can depend on the element context. This is fast and saves memory by
+ // reusing the style data structures.
state.style()->copyNonInheritedFromCached(
*cachedMatchedProperties->computedStyle);
if (state.parentStyle()->inheritedDataShared(
@@ -1698,11 +1723,13 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
matchedPropertyCacheInheritedHit, 1);
EInsideLink linkStatus = state.style()->insideLink();
- // If the cache item parent style has identical inherited properties to the current parent style then the
- // resulting style will be identical too. We copy the inherited properties over from the cache and are done.
+ // If the cache item parent style has identical inherited properties to
+ // the current parent style then the resulting style will be identical
+ // too. We copy the inherited properties over from the cache and are done.
state.style()->inheritFrom(*cachedMatchedProperties->computedStyle);
- // Unfortunately the link status is treated like an inherited property. We need to explicitly restore it.
+ // Unfortunately the link status is treated like an inherited property. We
+ // need to explicitly restore it.
state.style()->setInsideLink(linkStatus);
updateFont(state);
@@ -1712,7 +1739,8 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
applyInheritedOnly = true;
}
- // TODO(leviw): We need the proper bit for tracking whether we need to do this work.
+ // TODO(leviw): We need the proper bit for tracking whether we need to do this
+ // work.
applyMatchedProperties<ResolveVariables>(state, matchResult.authorRules(),
false, applyInheritedOnly);
applyMatchedProperties<ResolveVariables>(state, matchResult.authorRules(),
@@ -1731,10 +1759,11 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
}
}
- // Now we have all of the matched rules in the appropriate order. Walk the rules and apply
- // high-priority properties first, i.e., those properties that other properties depend on.
- // The order is (1) high-priority not important, (2) high-priority important, (3) normal not important
- // and (4) normal important.
+ // Now we have all of the matched rules in the appropriate order. Walk the
+ // rules and apply high-priority properties first, i.e., those properties that
+ // other properties depend on. The order is (1) high-priority not important,
+ // (2) high-priority important, (3) normal not important and (4) normal
+ // important.
applyMatchedProperties<HighPropertyPriority>(state, matchResult.allRules(),
false, applyInheritedOnly);
for (auto range : ImportantAuthorRanges(matchResult))
@@ -1744,12 +1773,15 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
true, applyInheritedOnly);
if (UNLIKELY(isSVGForeignObjectElement(element))) {
- // LayoutSVGRoot handles zooming for the whole SVG subtree, so foreignObject content should not be scaled again.
+ // LayoutSVGRoot handles zooming for the whole SVG subtree, so foreignObject
+ // content should not be scaled again.
//
- // FIXME: The following hijacks the zoom property for foreignObject so that children of foreignObject get the
- // correct font-size in case of zooming. 'zoom' has HighPropertyPriority, along with other font-related
- // properties used as input to the FontBuilder, so resetting it here may cause the FontBuilder to recompute the
- // font used as inheritable font for foreignObject content. If we want to support zoom on foreignObject we'll
+ // FIXME: The following hijacks the zoom property for foreignObject so that
+ // children of foreignObject get the correct font-size in case of zooming.
+ // 'zoom' has HighPropertyPriority, along with other font-related properties
+ // used as input to the FontBuilder, so resetting it here may cause the
+ // FontBuilder to recompute the font used as inheritable font for
+ // foreignObject content. If we want to support zoom on foreignObject we'll
// need to find another way of handling the SVG zoom model.
state.setEffectiveZoom(ComputedStyle::initialZoom());
}
@@ -1764,7 +1796,8 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
// If our font got dirtied, go ahead and update it now.
updateFont(state);
- // Many properties depend on the font. If it changes we just apply all properties.
+ // Many properties depend on the font. If it changes we just apply all
+ // properties.
if (cachedMatchedProperties &&
cachedMatchedProperties->computedStyle->getFontDescription() !=
state.style()->getFontDescription())
@@ -1777,7 +1810,8 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
// Cache the UA properties to pass them to LayoutTheme in adjustComputedStyle.
state.cacheUserAgentBorderAndBackground();
- // Now do the author and user normal priority properties and all the !important properties.
+ // Now do the author and user normal priority properties and all the
+ // !important properties.
applyMatchedProperties<LowPropertyPriority>(state, matchResult.authorRules(),
false, applyInheritedOnly);
for (auto range : ImportantAuthorRanges(matchResult))
@@ -1787,9 +1821,10 @@ void StyleResolver::applyMatchedProperties(StyleResolverState& state,
true, applyInheritedOnly);
if (state.style()->hasAppearance() && !applyInheritedOnly) {
- // Check whether the final border and background differs from the cached UA ones.
- // When there is a partial match in the MatchedPropertiesCache, these flags will already be set correctly
- // and the value stored in cacheUserAgentBorderAndBackground is incorrect, so doing this check again
+ // Check whether the final border and background differs from the cached UA
+ // ones. When there is a partial match in the MatchedPropertiesCache, these
+ // flags will already be set correctly and the value stored in
+ // cacheUserAgentBorderAndBackground is incorrect, so doing this check again
// would give the wrong answer.
state.style()->setHasAuthorBackground(hasAuthorBackground(state));
state.style()->setHasAuthorBorder(hasAuthorBorder(state));

Powered by Google App Engine
This is Rietveld 408576698