| 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 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 } | 139 } |
| 140 } | 140 } |
| 141 } | 141 } |
| 142 | 142 |
| 143 StyleResolver::StyleResolver(Document& document) | 143 StyleResolver::StyleResolver(Document& document) |
| 144 : m_document(document) | 144 : m_document(document) |
| 145 , m_viewportStyleResolver(ViewportStyleResolver::create(&document)) | 145 , m_viewportStyleResolver(ViewportStyleResolver::create(&document)) |
| 146 , m_needCollectFeatures(false) | 146 , m_needCollectFeatures(false) |
| 147 , m_printMediaType(false) | 147 , m_printMediaType(false) |
| 148 , m_styleSharingDepth(0) | 148 , m_styleSharingDepth(0) |
| 149 , m_accessCount(0) | |
| 150 { | 149 { |
| 151 FrameView* view = document.view(); | 150 FrameView* view = document.view(); |
| 152 if (view) { | 151 if (view) { |
| 153 m_medium = adoptPtrWillBeNoop(new MediaQueryEvaluator(&view->frame())); | 152 m_medium = adoptPtrWillBeNoop(new MediaQueryEvaluator(&view->frame())); |
| 154 m_printMediaType = equalIgnoringCase(view->mediaType(), MediaTypeNames::
print); | 153 m_printMediaType = equalIgnoringCase(view->mediaType(), MediaTypeNames::
print); |
| 155 } else { | 154 } else { |
| 156 m_medium = adoptPtrWillBeNoop(new MediaQueryEvaluator("all")); | 155 m_medium = adoptPtrWillBeNoop(new MediaQueryEvaluator("all")); |
| 157 } | 156 } |
| 158 | 157 |
| 159 initWatchedSelectorRules(); | 158 initWatchedSelectorRules(); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 return m_features.hasSelectorForId(id); | 321 return m_features.hasSelectorForId(id); |
| 323 } | 322 } |
| 324 | 323 |
| 325 void StyleResolver::addToStyleSharingList(Element& element) | 324 void StyleResolver::addToStyleSharingList(Element& element) |
| 326 { | 325 { |
| 327 ASSERT(RuntimeEnabledFeatures::styleSharingEnabled()); | 326 ASSERT(RuntimeEnabledFeatures::styleSharingEnabled()); |
| 328 // Never add elements to the style sharing list if we're not in a recalcStyl
e, | 327 // Never add elements to the style sharing list if we're not in a recalcStyl
e, |
| 329 // otherwise we could leave stale pointers in there. | 328 // otherwise we could leave stale pointers in there. |
| 330 if (!document().inStyleRecalc()) | 329 if (!document().inStyleRecalc()) |
| 331 return; | 330 return; |
| 332 INCREMENT_STYLE_STATS_COUNTER(*this, sharedStyleCandidates, 1); | 331 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), sharedStyleCandidate
s, 1); |
| 333 StyleSharingList& list = styleSharingList(); | 332 StyleSharingList& list = styleSharingList(); |
| 334 if (list.size() >= styleSharingListSize) | 333 if (list.size() >= styleSharingListSize) |
| 335 list.removeLast(); | 334 list.removeLast(); |
| 336 list.prepend(&element); | 335 list.prepend(&element); |
| 337 } | 336 } |
| 338 | 337 |
| 339 StyleSharingList& StyleResolver::styleSharingList() | 338 StyleSharingList& StyleResolver::styleSharingList() |
| 340 { | 339 { |
| 341 m_styleSharingLists.resize(styleSharingMaxDepth); | 340 m_styleSharingLists.resize(styleSharingMaxDepth); |
| 342 | 341 |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 if (!s_styleNotYetAvailable) { | 568 if (!s_styleNotYetAvailable) { |
| 570 s_styleNotYetAvailable = ComputedStyle::create().leakRef(); | 569 s_styleNotYetAvailable = ComputedStyle::create().leakRef(); |
| 571 s_styleNotYetAvailable->setDisplay(NONE); | 570 s_styleNotYetAvailable->setDisplay(NONE); |
| 572 s_styleNotYetAvailable->font().update(document().styleEngine().fontS
elector()); | 571 s_styleNotYetAvailable->font().update(document().styleEngine().fontS
elector()); |
| 573 } | 572 } |
| 574 | 573 |
| 575 document().setHasNodesWithPlaceholderStyle(); | 574 document().setHasNodesWithPlaceholderStyle(); |
| 576 return s_styleNotYetAvailable; | 575 return s_styleNotYetAvailable; |
| 577 } | 576 } |
| 578 | 577 |
| 579 didAccess(); | 578 document().styleEngine().incStyleForElementCount(); |
| 580 INCREMENT_STYLE_STATS_COUNTER(*this, elementsStyled, 1); | 579 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), elementsStyled, 1); |
| 581 | 580 |
| 582 StyleResolverParentScope::ensureParentStackIsPushed(); | 581 StyleResolverParentScope::ensureParentStackIsPushed(); |
| 583 | 582 |
| 584 ElementResolveContext elementContext(*element); | 583 ElementResolveContext elementContext(*element); |
| 585 | 584 |
| 586 if (RuntimeEnabledFeatures::styleSharingEnabled() && sharingBehavior == Allo
wStyleSharing && (defaultParent || elementContext.parentStyle())) { | 585 if (RuntimeEnabledFeatures::styleSharingEnabled() && sharingBehavior == Allo
wStyleSharing && (defaultParent || elementContext.parentStyle())) { |
| 587 SharedStyleFinder styleFinder(elementContext, m_features, m_siblingRuleS
et.get(), m_uncommonAttributeRuleSet.get(), *this); | 586 SharedStyleFinder styleFinder(elementContext, m_features, m_siblingRuleS
et.get(), m_uncommonAttributeRuleSet.get(), *this); |
| 588 if (RefPtr<ComputedStyle> sharedStyle = styleFinder.findSharedStyle()) | 587 if (RefPtr<ComputedStyle> sharedStyle = styleFinder.findSharedStyle()) |
| 589 return sharedStyle.release(); | 588 return sharedStyle.release(); |
| 590 } | 589 } |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 654 applyCallbackSelectors(state); | 653 applyCallbackSelectors(state); |
| 655 | 654 |
| 656 // Cache our original display. | 655 // Cache our original display. |
| 657 state.style()->setOriginalDisplay(state.style()->display()); | 656 state.style()->setOriginalDisplay(state.style()->display()); |
| 658 | 657 |
| 659 adjustComputedStyle(state, element); | 658 adjustComputedStyle(state, element); |
| 660 | 659 |
| 661 if (elementAnimations) | 660 if (elementAnimations) |
| 662 elementAnimations->updateBaseComputedStyle(state.style()); | 661 elementAnimations->updateBaseComputedStyle(state.style()); |
| 663 } else { | 662 } else { |
| 664 INCREMENT_STYLE_STATS_COUNTER(*this, baseStylesUsed, 1); | 663 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), baseStylesUsed,
1); |
| 665 } | 664 } |
| 666 | 665 |
| 667 // FIXME: The CSSWG wants to specify that the effects of animations are appl
ied before | 666 // FIXME: The CSSWG wants to specify that the effects of animations are appl
ied before |
| 668 // important rules, but this currently happens here as we require adjustment
to have happened | 667 // important rules, but this currently happens here as we require adjustment
to have happened |
| 669 // before deciding which properties to transition. | 668 // before deciding which properties to transition. |
| 670 if (applyAnimatedProperties(state, element)) { | 669 if (applyAnimatedProperties(state, element)) { |
| 671 INCREMENT_STYLE_STATS_COUNTER(*this, stylesAnimated, 1); | 670 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), stylesAnimated,
1); |
| 672 adjustComputedStyle(state, element); | 671 adjustComputedStyle(state, element); |
| 673 } | 672 } |
| 674 | 673 |
| 675 if (isHTMLBodyElement(*element)) | 674 if (isHTMLBodyElement(*element)) |
| 676 document().textLinkColors().setTextColor(state.style()->color()); | 675 document().textLinkColors().setTextColor(state.style()->color()); |
| 677 | 676 |
| 678 setAnimationUpdateIfNeeded(state, *element); | 677 setAnimationUpdateIfNeeded(state, *element); |
| 679 | 678 |
| 680 if (state.style()->hasViewportUnits()) | 679 if (state.style()->hasViewportUnits()) |
| 681 document().setHasViewportUnits(); | 680 document().setHasViewportUnits(); |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 if (elementAnimations) | 811 if (elementAnimations) |
| 813 elementAnimations->updateBaseComputedStyle(state.style()); | 812 elementAnimations->updateBaseComputedStyle(state.style()); |
| 814 } | 813 } |
| 815 | 814 |
| 816 // FIXME: The CSSWG wants to specify that the effects of animations are appl
ied before | 815 // FIXME: The CSSWG wants to specify that the effects of animations are appl
ied before |
| 817 // important rules, but this currently happens here as we require adjustment
to have happened | 816 // important rules, but this currently happens here as we require adjustment
to have happened |
| 818 // before deciding which properties to transition. | 817 // before deciding which properties to transition. |
| 819 if (applyAnimatedProperties(state, pseudoElement)) | 818 if (applyAnimatedProperties(state, pseudoElement)) |
| 820 adjustComputedStyle(state, 0); | 819 adjustComputedStyle(state, 0); |
| 821 | 820 |
| 822 didAccess(); | 821 document().styleEngine().incStyleForElementCount(); |
| 823 INCREMENT_STYLE_STATS_COUNTER(*this, pseudoElementsStyled, 1); | 822 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), pseudoElementsStyled
, 1); |
| 824 | 823 |
| 825 if (state.style()->hasViewportUnits()) | 824 if (state.style()->hasViewportUnits()) |
| 826 document().setHasViewportUnits(); | 825 document().setHasViewportUnits(); |
| 827 | 826 |
| 828 return true; | 827 return true; |
| 829 } | 828 } |
| 830 | 829 |
| 831 PassRefPtr<ComputedStyle> StyleResolver::pseudoStyleForElement(Element* element,
const PseudoStyleRequest& pseudoStyleRequest, const ComputedStyle* parentStyle) | 830 PassRefPtr<ComputedStyle> StyleResolver::pseudoStyleForElement(Element* element,
const PseudoStyleRequest& pseudoStyleRequest, const ComputedStyle* parentStyle) |
| 832 { | 831 { |
| 833 ASSERT(parentStyle); | 832 ASSERT(parentStyle); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 871 const MatchResult& result = collector.matchedResult(); | 870 const MatchResult& result = collector.matchedResult(); |
| 872 applyMatchedProperties<HighPropertyPriority>(state, result.allRules(), false
, inheritedOnly); | 871 applyMatchedProperties<HighPropertyPriority>(state, result.allRules(), false
, inheritedOnly); |
| 873 | 872 |
| 874 // If our font got dirtied, go ahead and update it now. | 873 // If our font got dirtied, go ahead and update it now. |
| 875 updateFont(state); | 874 updateFont(state); |
| 876 | 875 |
| 877 applyMatchedProperties<LowPropertyPriority>(state, result.allRules(), false,
inheritedOnly); | 876 applyMatchedProperties<LowPropertyPriority>(state, result.allRules(), false,
inheritedOnly); |
| 878 | 877 |
| 879 loadPendingResources(state); | 878 loadPendingResources(state); |
| 880 | 879 |
| 881 didAccess(); | |
| 882 | |
| 883 // Now return the style. | 880 // Now return the style. |
| 884 return state.takeStyle(); | 881 return state.takeStyle(); |
| 885 } | 882 } |
| 886 | 883 |
| 887 PassRefPtr<ComputedStyle> StyleResolver::initialStyleForElement() | 884 PassRefPtr<ComputedStyle> StyleResolver::initialStyleForElement() |
| 888 { | 885 { |
| 889 RefPtr<ComputedStyle> style = ComputedStyle::create(); | 886 RefPtr<ComputedStyle> style = ComputedStyle::create(); |
| 890 FontBuilder fontBuilder(document()); | 887 FontBuilder fontBuilder(document()); |
| 891 fontBuilder.setInitial(style->effectiveZoom()); | 888 fontBuilder.setInitial(style->effectiveZoom()); |
| 892 fontBuilder.createFont(document().styleEngine().fontSelector(), *style); | 889 fontBuilder.createFont(document().styleEngine().fontSelector(), *style); |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1341 { | 1338 { |
| 1342 m_viewportStyleResolver->collectViewportRules(); | 1339 m_viewportStyleResolver->collectViewportRules(); |
| 1343 m_matchedPropertiesCache.clearViewportDependent(); | 1340 m_matchedPropertiesCache.clearViewportDependent(); |
| 1344 } | 1341 } |
| 1345 | 1342 |
| 1346 void StyleResolver::applyMatchedProperties(StyleResolverState& state, const Matc
hResult& matchResult) | 1343 void StyleResolver::applyMatchedProperties(StyleResolverState& state, const Matc
hResult& matchResult) |
| 1347 { | 1344 { |
| 1348 const Element* element = state.element(); | 1345 const Element* element = state.element(); |
| 1349 ASSERT(element); | 1346 ASSERT(element); |
| 1350 | 1347 |
| 1351 INCREMENT_STYLE_STATS_COUNTER(*this, matchedPropertyApply, 1); | 1348 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), matchedPropertyApply
, 1); |
| 1352 | 1349 |
| 1353 unsigned cacheHash = RuntimeEnabledFeatures::styleMatchedPropertiesCacheEnab
led() && matchResult.isCacheable() ? computeMatchedPropertiesHash(matchResult.ma
tchedProperties().data(), matchResult.matchedProperties().size()) : 0; | 1350 unsigned cacheHash = RuntimeEnabledFeatures::styleMatchedPropertiesCacheEnab
led() && matchResult.isCacheable() ? computeMatchedPropertiesHash(matchResult.ma
tchedProperties().data(), matchResult.matchedProperties().size()) : 0; |
| 1354 bool applyInheritedOnly = false; | 1351 bool applyInheritedOnly = false; |
| 1355 const CachedMatchedProperties* cachedMatchedProperties = cacheHash ? m_match
edPropertiesCache.find(cacheHash, state, matchResult.matchedProperties()) : null
ptr; | 1352 const CachedMatchedProperties* cachedMatchedProperties = cacheHash ? m_match
edPropertiesCache.find(cacheHash, state, matchResult.matchedProperties()) : null
ptr; |
| 1356 | 1353 |
| 1357 if (cachedMatchedProperties && MatchedPropertiesCache::isCacheable(*state.st
yle(), *state.parentStyle())) { | 1354 if (cachedMatchedProperties && MatchedPropertiesCache::isCacheable(*state.st
yle(), *state.parentStyle())) { |
| 1358 INCREMENT_STYLE_STATS_COUNTER(*this, matchedPropertyCacheHit, 1); | 1355 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), matchedPropertyC
acheHit, 1); |
| 1359 // We can build up the style by copying non-inherited properties from an
earlier style object built using the same exact | 1356 // We can build up the style by copying non-inherited properties from an
earlier style object built using the same exact |
| 1360 // style declarations. We then only need to apply the inherited properti
es, if any, as their values can depend on the | 1357 // style declarations. We then only need to apply the inherited properti
es, if any, as their values can depend on the |
| 1361 // element context. This is fast and saves memory by reusing the style d
ata structures. | 1358 // element context. This is fast and saves memory by reusing the style d
ata structures. |
| 1362 state.style()->copyNonInheritedFromCached(*cachedMatchedProperties->comp
utedStyle); | 1359 state.style()->copyNonInheritedFromCached(*cachedMatchedProperties->comp
utedStyle); |
| 1363 if (state.parentStyle()->inheritedDataShared(*cachedMatchedProperties->p
arentComputedStyle) && !isAtShadowBoundary(element) | 1360 if (state.parentStyle()->inheritedDataShared(*cachedMatchedProperties->p
arentComputedStyle) && !isAtShadowBoundary(element) |
| 1364 && (!state.distributedToInsertionPoint() || state.style()->userModif
y() == READ_ONLY)) { | 1361 && (!state.distributedToInsertionPoint() || state.style()->userModif
y() == READ_ONLY)) { |
| 1365 INCREMENT_STYLE_STATS_COUNTER(*this, matchedPropertyCacheInheritedHi
t, 1); | 1362 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), matchedPrope
rtyCacheInheritedHit, 1); |
| 1366 | 1363 |
| 1367 EInsideLink linkStatus = state.style()->insideLink(); | 1364 EInsideLink linkStatus = state.style()->insideLink(); |
| 1368 // If the cache item parent style has identical inherited properties
to the current parent style then the | 1365 // If the cache item parent style has identical inherited properties
to the current parent style then the |
| 1369 // resulting style will be identical too. We copy the inherited prop
erties over from the cache and are done. | 1366 // resulting style will be identical too. We copy the inherited prop
erties over from the cache and are done. |
| 1370 state.style()->inheritFrom(*cachedMatchedProperties->computedStyle); | 1367 state.style()->inheritFrom(*cachedMatchedProperties->computedStyle); |
| 1371 | 1368 |
| 1372 // Unfortunately the link status is treated like an inherited proper
ty. We need to explicitly restore it. | 1369 // Unfortunately the link status is treated like an inherited proper
ty. We need to explicitly restore it. |
| 1373 state.style()->setInsideLink(linkStatus); | 1370 state.style()->setInsideLink(linkStatus); |
| 1374 | 1371 |
| 1375 updateFont(state); | 1372 updateFont(state); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1437 // and the value stored in cacheUserAgentBorderAndBackground is incorrec
t, so doing this check again | 1434 // and the value stored in cacheUserAgentBorderAndBackground is incorrec
t, so doing this check again |
| 1438 // would give the wrong answer. | 1435 // would give the wrong answer. |
| 1439 state.style()->setHasAuthorBackground(hasAuthorBackground(state)); | 1436 state.style()->setHasAuthorBackground(hasAuthorBackground(state)); |
| 1440 state.style()->setHasAuthorBorder(hasAuthorBorder(state)); | 1437 state.style()->setHasAuthorBorder(hasAuthorBorder(state)); |
| 1441 } | 1438 } |
| 1442 | 1439 |
| 1443 loadPendingResources(state); | 1440 loadPendingResources(state); |
| 1444 | 1441 |
| 1445 if (!cachedMatchedProperties && cacheHash && MatchedPropertiesCache::isCache
able(*state.style(), *state.parentStyle())) { | 1442 if (!cachedMatchedProperties && cacheHash && MatchedPropertiesCache::isCache
able(*state.style(), *state.parentStyle())) { |
| 1446 ASSERT(RuntimeEnabledFeatures::styleMatchedPropertiesCacheEnabled()); | 1443 ASSERT(RuntimeEnabledFeatures::styleMatchedPropertiesCacheEnabled()); |
| 1447 INCREMENT_STYLE_STATS_COUNTER(*this, matchedPropertyCacheAdded, 1); | 1444 INCREMENT_STYLE_STATS_COUNTER(document().styleEngine(), matchedPropertyC
acheAdded, 1); |
| 1448 m_matchedPropertiesCache.add(*state.style(), *state.parentStyle(), cache
Hash, matchResult.matchedProperties()); | 1445 m_matchedPropertiesCache.add(*state.style(), *state.parentStyle(), cache
Hash, matchResult.matchedProperties()); |
| 1449 } | 1446 } |
| 1450 | 1447 |
| 1451 ASSERT(!state.fontBuilder().fontDirty()); | 1448 ASSERT(!state.fontBuilder().fontDirty()); |
| 1452 } | 1449 } |
| 1453 | 1450 |
| 1454 bool StyleResolver::hasAuthorBackground(const StyleResolverState& state) | 1451 bool StyleResolver::hasAuthorBackground(const StyleResolverState& state) |
| 1455 { | 1452 { |
| 1456 const CachedUAStyle* cachedUAStyle = state.cachedUAStyle(); | 1453 const CachedUAStyle* cachedUAStyle = state.cachedUAStyle(); |
| 1457 if (!cachedUAStyle) | 1454 if (!cachedUAStyle) |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1487 collector.collectMatchingRules(matchRequest); | 1484 collector.collectMatchingRules(matchRequest); |
| 1488 collector.sortAndTransferMatchedRules(); | 1485 collector.sortAndTransferMatchedRules(); |
| 1489 | 1486 |
| 1490 RefPtrWillBeRawPtr<StyleRuleList> rules = collector.matchedStyleRuleList(); | 1487 RefPtrWillBeRawPtr<StyleRuleList> rules = collector.matchedStyleRuleList(); |
| 1491 if (!rules) | 1488 if (!rules) |
| 1492 return; | 1489 return; |
| 1493 for (size_t i = 0; i < rules->size(); i++) | 1490 for (size_t i = 0; i < rules->size(); i++) |
| 1494 state.style()->addCallbackSelector(rules->at(i)->selectorList().selector
sText()); | 1491 state.style()->addCallbackSelector(rules->at(i)->selectorList().selector
sText()); |
| 1495 } | 1492 } |
| 1496 | 1493 |
| 1497 void StyleResolver::setStatsEnabled(bool enabled) | |
| 1498 { | |
| 1499 if (enabled) { | |
| 1500 if (!m_styleResolverStats) { | |
| 1501 m_styleResolverStats = StyleResolverStats::create(); | |
| 1502 } else { | |
| 1503 m_styleResolverStats->reset(); | |
| 1504 } | |
| 1505 } else { | |
| 1506 m_styleResolverStats = nullptr; | |
| 1507 } | |
| 1508 } | |
| 1509 | |
| 1510 void StyleResolver::computeFont(ComputedStyle* style, const StylePropertySet& pr
opertySet) | 1494 void StyleResolver::computeFont(ComputedStyle* style, const StylePropertySet& pr
opertySet) |
| 1511 { | 1495 { |
| 1512 CSSPropertyID properties[] = { | 1496 CSSPropertyID properties[] = { |
| 1513 CSSPropertyFontSize, | 1497 CSSPropertyFontSize, |
| 1514 CSSPropertyFontFamily, | 1498 CSSPropertyFontFamily, |
| 1515 CSSPropertyFontStretch, | 1499 CSSPropertyFontStretch, |
| 1516 CSSPropertyFontStyle, | 1500 CSSPropertyFontStyle, |
| 1517 CSSPropertyFontVariant, | 1501 CSSPropertyFontVariant, |
| 1518 CSSPropertyFontWeight, | 1502 CSSPropertyFontWeight, |
| 1519 CSSPropertyLineHeight, | 1503 CSSPropertyLineHeight, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1574 visitor->trace(m_uncommonAttributeRuleSet); | 1558 visitor->trace(m_uncommonAttributeRuleSet); |
| 1575 visitor->trace(m_watchedSelectorsRules); | 1559 visitor->trace(m_watchedSelectorsRules); |
| 1576 visitor->trace(m_treeBoundaryCrossingScopes); | 1560 visitor->trace(m_treeBoundaryCrossingScopes); |
| 1577 visitor->trace(m_styleSharingLists); | 1561 visitor->trace(m_styleSharingLists); |
| 1578 visitor->trace(m_pendingStyleSheets); | 1562 visitor->trace(m_pendingStyleSheets); |
| 1579 visitor->trace(m_document); | 1563 visitor->trace(m_document); |
| 1580 #endif | 1564 #endif |
| 1581 } | 1565 } |
| 1582 | 1566 |
| 1583 } // namespace blink | 1567 } // namespace blink |
| OLD | NEW |