| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 3 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 4 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
| 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc.
All rights reserved. |
| 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 6 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 7 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t
orchmobile.com/) |
| 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 9 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
| 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 10 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| (...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 586 | 586 |
| 587 static void addContentAttrValuesToFeatures(const Vector<AtomicString>& contentAt
trValues, RuleFeatureSet& features) | 587 static void addContentAttrValuesToFeatures(const Vector<AtomicString>& contentAt
trValues, RuleFeatureSet& features) |
| 588 { | 588 { |
| 589 for (size_t i = 0; i < contentAttrValues.size(); ++i) | 589 for (size_t i = 0; i < contentAttrValues.size(); ++i) |
| 590 features.addContentAttr(contentAttrValues[i]); | 590 features.addContentAttr(contentAttrValues[i]); |
| 591 } | 591 } |
| 592 | 592 |
| 593 void StyleResolver::adjustRenderStyle(StyleResolverState& state, Element* elemen
t) | 593 void StyleResolver::adjustRenderStyle(StyleResolverState& state, Element* elemen
t) |
| 594 { | 594 { |
| 595 StyleAdjuster adjuster(m_document.inQuirksMode()); | 595 StyleAdjuster adjuster(m_document.inQuirksMode()); |
| 596 adjuster.adjustRenderStyle(state.style(), state.parentStyle(), element, stat
e.cachedUAStyle()); | 596 bool uaStyleHasWebkitAppearance = element && elementTypeHasAppearanceFromUAS
tyle(*element); |
| 597 adjuster.adjustRenderStyle(state.style(), state.parentStyle(), element, uaSt
yleHasWebkitAppearance, state.valuesUnchangedForWebkitAppearance()); |
| 597 } | 598 } |
| 598 | 599 |
| 599 // Start loading resources referenced by this style. | 600 // Start loading resources referenced by this style. |
| 600 void StyleResolver::loadPendingResources(StyleResolverState& state) | 601 void StyleResolver::loadPendingResources(StyleResolverState& state) |
| 601 { | 602 { |
| 602 m_styleResourceLoader.loadPendingResources(state.style(), state.elementStyle
Resources()); | 603 m_styleResourceLoader.loadPendingResources(state.style(), state.elementStyle
Resources()); |
| 603 document().styleEngine()->fontSelector()->fontLoader()->loadPendingFonts(); | 604 document().styleEngine()->fontSelector()->fontLoader()->loadPendingFonts(); |
| 604 } | 605 } |
| 605 | 606 |
| 606 PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderS
tyle* defaultParent, StyleSharingBehavior sharingBehavior, | 607 PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderS
tyle* defaultParent, StyleSharingBehavior sharingBehavior, |
| (...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1158 | 1159 |
| 1159 // If our font got dirtied, go ahead and update it now. | 1160 // If our font got dirtied, go ahead and update it now. |
| 1160 updateFont(state); | 1161 updateFont(state); |
| 1161 | 1162 |
| 1162 // Many properties depend on the font. If it changes we just apply all prope
rties. | 1163 // Many properties depend on the font. If it changes we just apply all prope
rties. |
| 1163 if (cachedMatchedProperties && cachedMatchedProperties->renderStyle->fontDes
cription() != state.style()->fontDescription()) | 1164 if (cachedMatchedProperties && cachedMatchedProperties->renderStyle->fontDes
cription() != state.style()->fontDescription()) |
| 1164 applyInheritedOnly = false; | 1165 applyInheritedOnly = false; |
| 1165 | 1166 |
| 1166 // This code supports -webkit-appearance, for which we are interested | 1167 // This code supports -webkit-appearance, for which we are interested |
| 1167 // in whether the user has specified border or background properties. | 1168 // in whether the user has specified border or background properties. |
| 1168 // FIXME: This is a bit of a mess, we should just compare CSSValues and | |
| 1169 // store a single bit for this. | |
| 1170 if (elementTypeHasAppearanceFromUAStyle(*element)) { | 1169 if (elementTypeHasAppearanceFromUAStyle(*element)) { |
| 1171 CascadedValues userAgentValues(state, matchResult, true); | 1170 if (cascadedValues.valuesUnchangedForWebkitAppearance(matchResult)) |
| 1172 // We only actually care about border and background properties here | 1171 state.setValuesUnchangedForWebkitAppearance(); |
| 1173 userAgentValues.applyValues(firstCSSPropertyId<LowPriorityProperties>(),
lastCSSPropertyId<LowPriorityProperties>(), applyInheritedOnly); | |
| 1174 state.cacheUserAgentBorderAndBackground(); | |
| 1175 } | 1172 } |
| 1176 | 1173 |
| 1177 cascadedValues.applyValues(firstCSSPropertyId<LowPriorityProperties>(), last
CSSPropertyId<LowPriorityProperties>(), applyInheritedOnly); | 1174 cascadedValues.applyValues(firstCSSPropertyId<LowPriorityProperties>(), last
CSSPropertyId<LowPriorityProperties>(), applyInheritedOnly); |
| 1178 | 1175 |
| 1179 loadPendingResources(state); | 1176 loadPendingResources(state); |
| 1180 | 1177 |
| 1181 if (!cachedMatchedProperties && cacheHash && MatchedPropertiesCache::isCache
able(element, state.style(), state.parentStyle())) { | 1178 if (!cachedMatchedProperties && cacheHash && MatchedPropertiesCache::isCache
able(element, state.style(), state.parentStyle())) { |
| 1182 INCREMENT_STYLE_STATS_COUNTER(*this, matchedPropertyCacheAdded); | 1179 INCREMENT_STYLE_STATS_COUNTER(*this, matchedPropertyCacheAdded); |
| 1183 m_matchedPropertiesCache.add(state.style(), state.parentStyle(), cacheHa
sh, matchResult); | 1180 m_matchedPropertiesCache.add(state.style(), state.parentStyle(), cacheHa
sh, matchResult); |
| 1184 } | 1181 } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1269 visitor->trace(m_features); | 1266 visitor->trace(m_features); |
| 1270 visitor->trace(m_siblingRuleSet); | 1267 visitor->trace(m_siblingRuleSet); |
| 1271 visitor->trace(m_uncommonAttributeRuleSet); | 1268 visitor->trace(m_uncommonAttributeRuleSet); |
| 1272 visitor->trace(m_watchedSelectorsRules); | 1269 visitor->trace(m_watchedSelectorsRules); |
| 1273 visitor->trace(m_treeBoundaryCrossingRules); | 1270 visitor->trace(m_treeBoundaryCrossingRules); |
| 1274 visitor->trace(m_pendingStyleSheets); | 1271 visitor->trace(m_pendingStyleSheets); |
| 1275 #endif | 1272 #endif |
| 1276 } | 1273 } |
| 1277 | 1274 |
| 1278 } // namespace blink | 1275 } // namespace blink |
| OLD | NEW |