Chromium Code Reviews| Index: Source/core/css/resolver/StyleResolver.cpp |
| diff --git a/Source/core/css/resolver/StyleResolver.cpp b/Source/core/css/resolver/StyleResolver.cpp |
| index eeac97f337b6c49781d02cea35a2d1cbe7670d2f..5848a8eafbf534d176381465b44837cc57744724 100644 |
| --- a/Source/core/css/resolver/StyleResolver.cpp |
| +++ b/Source/core/css/resolver/StyleResolver.cpp |
| @@ -187,12 +187,12 @@ void StyleResolver::appendCSSStyleSheet(CSSStyleSheet* cssSheet) |
| if (cssSheet->mediaQueries() && !m_medium->eval(cssSheet->mediaQueries(), &m_viewportDependentMediaQueryResults)) |
| return; |
| - TreeScope* treeScope = ScopedStyleResolver::treeScopeFor(document(), cssSheet); |
| + TreeScope* treeScope = ScopedStyleResolver::treeScopeFor(*m_document, cssSheet); |
|
rune
2014/09/24 08:16:20
Why not keep document() and make it private instea
|
| if (!treeScope) |
| return; |
| ScopedStyleResolver& resolver = treeScope->ensureScopedStyleResolver(); |
| - document().styleEngine()->addScopedStyleResolver(&resolver); |
| + m_document->styleEngine()->addScopedStyleResolver(&resolver); |
| resolver.addRulesFromSheet(cssSheet, *m_medium, this); |
| } |
| @@ -218,12 +218,12 @@ void StyleResolver::finishAppendAuthorStyleSheets() |
| { |
| collectFeatures(); |
| - if (document().renderView() && document().renderView()->style()) |
| - document().renderView()->style()->font().update(document().styleEngine()->fontSelector()); |
| + if (m_document->renderView() && m_document->renderView()->style()) |
| + m_document->renderView()->style()->font().update(m_document->styleEngine()->fontSelector()); |
| collectViewportRules(); |
| - document().styleEngine()->resetCSSFeatureFlags(m_features); |
| + m_document->styleEngine()->resetCSSFeatureFlags(m_features); |
| } |
| void StyleResolver::resetRuleFeatures() |
| @@ -239,7 +239,7 @@ void StyleResolver::processScopedRules(const RuleSet& authorRules, CSSStyleSheet |
| { |
| const WillBeHeapVector<RawPtrWillBeMember<StyleRuleKeyframes> > keyframesRules = authorRules.keyframesRules(); |
| ScopedStyleResolver* resolver = &scope.treeScope().ensureScopedStyleResolver(); |
| - document().styleEngine()->addScopedStyleResolver(resolver); |
| + m_document->styleEngine()->addScopedStyleResolver(resolver); |
| for (unsigned i = 0; i < keyframesRules.size(); ++i) |
| resolver->addKeyframeStyle(keyframesRules[i]); |
| @@ -249,7 +249,7 @@ void StyleResolver::processScopedRules(const RuleSet& authorRules, CSSStyleSheet |
| if (scope.isDocumentNode()) { |
| const WillBeHeapVector<RawPtrWillBeMember<StyleRuleFontFace> > fontFaceRules = authorRules.fontFaceRules(); |
| for (unsigned i = 0; i < fontFaceRules.size(); ++i) |
| - addFontFaceRule(m_document, document().styleEngine()->fontSelector(), fontFaceRules[i]); |
| + addFontFaceRule(m_document, m_document->styleEngine()->fontSelector(), fontFaceRules[i]); |
| if (fontFaceRules.size()) |
| invalidateMatchedPropertiesCache(); |
| } |
| @@ -269,7 +269,7 @@ void StyleResolver::resetAuthorStyle(TreeScope& treeScope) |
| return; |
| // resolver is going to be freed below. |
| - document().styleEngine()->removeScopedStyleResolver(resolver); |
| + m_document->styleEngine()->removeScopedStyleResolver(resolver); |
| treeScope.clearScopedStyleResolver(); |
| } |
| @@ -294,10 +294,10 @@ void StyleResolver::collectFeatures() |
| if (defaultStyleSheets.defaultStyle()) |
| m_features.add(defaultStyleSheets.defaultStyle()->features()); |
| - if (document().isViewSource()) |
| + if (m_document->isViewSource()) |
| m_features.add(defaultStyleSheets.defaultViewSourceStyle()->features()); |
| - if (document().isTransitionDocument()) |
| + if (m_document->isTransitionDocument()) |
| m_features.add(defaultStyleSheets.defaultTransitionStyle()->features()); |
| if (m_watchedSelectorsRules) |
| @@ -305,7 +305,7 @@ void StyleResolver::collectFeatures() |
| m_treeBoundaryCrossingRules.collectFeaturesTo(m_features); |
| - document().styleEngine()->collectScopedStyleFeaturesTo(m_features); |
| + m_document->styleEngine()->collectScopedStyleFeaturesTo(m_features); |
| m_siblingRuleSet = makeRuleSet(m_features.siblingRules); |
| m_uncommonAttributeRuleSet = makeRuleSet(m_features.uncommonAttributeRules); |
| @@ -321,7 +321,7 @@ void StyleResolver::addToStyleSharingList(Element& element) |
| { |
| // Never add elements to the style sharing list if we're not in a recalcStyle, |
| // otherwise we could leave stale pointers in there. |
| - if (!document().inStyleRecalc()) |
| + if (!m_document->inStyleRecalc()) |
| return; |
| INCREMENT_STYLE_STATS_COUNTER(*this, sharedStyleCandidates); |
| StyleSharingList& list = styleSharingList(); |
| @@ -407,8 +407,8 @@ void StyleResolver::matchAuthorRules(Element* element, ElementRuleCollector& col |
| collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().matchedProperties.size() - 1; |
| bool applyAuthorStyles = applyAuthorStylesOf(element); |
| - if (document().styleEngine()->hasOnlyScopedResolverForDocument()) { |
| - document().scopedStyleResolver()->collectMatchingAuthorRules(collector, includeEmptyRules, applyAuthorStyles, ignoreCascadeScope); |
| + if (m_document->styleEngine()->hasOnlyScopedResolverForDocument()) { |
| + m_document->scopedStyleResolver()->collectMatchingAuthorRules(collector, includeEmptyRules, applyAuthorStyles, ignoreCascadeScope); |
| m_treeBoundaryCrossingRules.collectTreeBoundaryCrossingRules(element, collector, includeEmptyRules); |
| collector.sortAndTransferMatchedRules(); |
| return; |
| @@ -448,14 +448,14 @@ void StyleResolver::matchUARules(ElementRuleCollector& collector) |
| matchUARules(collector, userAgentStyleSheet); |
| // In quirks mode, we match rules from the quirks user agent sheet. |
| - if (document().inQuirksMode()) |
| + if (m_document->inQuirksMode()) |
| matchUARules(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().isViewSource()) |
| + if (m_document->isViewSource()) |
| matchUARules(collector, defaultStyleSheets.defaultViewSourceStyle()); |
| - if (document().isTransitionDocument()) |
| + if (m_document->isTransitionDocument()) |
| matchUARules(collector, defaultStyleSheets.defaultTransitionStyle()); |
| collector.setMatchingUARules(false); |
| @@ -539,7 +539,7 @@ static void addContentAttrValuesToFeatures(const Vector<AtomicString>& contentAt |
| void StyleResolver::adjustRenderStyle(StyleResolverState& state, Element* element) |
| { |
| - StyleAdjuster adjuster(document().inQuirksMode()); |
| + StyleAdjuster adjuster(m_document->inQuirksMode()); |
| adjuster.adjustRenderStyle(state.style(), state.parentStyle(), element, state.cachedUAStyle()); |
| } |
| @@ -547,27 +547,27 @@ void StyleResolver::adjustRenderStyle(StyleResolverState& state, Element* elemen |
| void StyleResolver::loadPendingResources(StyleResolverState& state) |
| { |
| m_styleResourceLoader.loadPendingResources(state.style(), state.elementStyleResources()); |
| - document().styleEngine()->fontSelector()->fontLoader()->loadPendingFonts(); |
| + m_document->styleEngine()->fontSelector()->fontLoader()->loadPendingFonts(); |
| } |
| PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderStyle* defaultParent, StyleSharingBehavior sharingBehavior, |
| RuleMatchingBehavior matchingBehavior) |
| { |
| - ASSERT(document().frame()); |
| - ASSERT(document().settings()); |
| + ASSERT(m_document->frame()); |
| + ASSERT(m_document->settings()); |
| ASSERT(!hasPendingAuthorStyleSheets()); |
| ASSERT(!m_needCollectFeatures); |
| // Once an element has a renderer, we don't try to destroy it, since otherwise the renderer |
| // will vanish if a style recalc happens during loading. |
| - if (sharingBehavior == AllowStyleSharing && !document().isRenderingReady() && !element->renderer()) { |
| + if (sharingBehavior == AllowStyleSharing && !m_document->isRenderingReady() && !element->renderer()) { |
| if (!s_styleNotYetAvailable) { |
| s_styleNotYetAvailable = RenderStyle::create().leakRef(); |
| s_styleNotYetAvailable->setDisplay(NONE); |
| - s_styleNotYetAvailable->font().update(document().styleEngine()->fontSelector()); |
| + s_styleNotYetAvailable->font().update(m_document->styleEngine()->fontSelector()); |
| } |
| - document().setHasNodesWithPlaceholderStyle(); |
| + m_document->setHasNodesWithPlaceholderStyle(); |
| return s_styleNotYetAvailable; |
| } |
| @@ -575,9 +575,9 @@ PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderS |
| StyleResolverParentScope::ensureParentStackIsPushed(); |
| - if (element == document().documentElement()) |
| - resetDirectionAndWritingModeOnDocument(document()); |
| - StyleResolverState state(document(), element, defaultParent); |
| + if (element == m_document->documentElement()) |
| + resetDirectionAndWritingModeOnDocument(*m_document); |
| + StyleResolverState state(*m_document, element, defaultParent); |
| if (sharingBehavior == AllowStyleSharing && state.parentStyle()) { |
| SharedStyleFinder styleFinder(state.elementContext(), m_features, m_siblingRuleSet.get(), m_uncommonAttributeRuleSet.get(), *this); |
| @@ -642,12 +642,12 @@ PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderS |
| adjustRenderStyle(state, element); |
| if (isHTMLBodyElement(*element)) |
| - document().textLinkColors().setTextColor(state.style()->color()); |
| + m_document->textLinkColors().setTextColor(state.style()->color()); |
| setAnimationUpdateIfNeeded(state, *element); |
| if (state.style()->hasViewportUnits()) |
| - document().setHasViewportUnits(); |
| + m_document->setHasViewportUnits(); |
| // Now return the style. |
| return state.takeStyle(); |
| @@ -655,13 +655,13 @@ PassRefPtr<RenderStyle> StyleResolver::styleForElement(Element* element, RenderS |
| PassRefPtr<RenderStyle> StyleResolver::styleForKeyframe(Element& element, const RenderStyle& elementStyle, RenderStyle* parentStyle, const StyleKeyframe* keyframe, const AtomicString& animationName) |
| { |
| - ASSERT(document().frame()); |
| - ASSERT(document().settings()); |
| + ASSERT(m_document->frame()); |
| + ASSERT(m_document->settings()); |
| ASSERT(!hasPendingAuthorStyleSheets()); |
| - if (&element == document().documentElement()) |
| - resetDirectionAndWritingModeOnDocument(document()); |
| - StyleResolverState state(document(), &element, parentStyle); |
| + if (&element == m_document->documentElement()) |
| + resetDirectionAndWritingModeOnDocument(*m_document); |
| + StyleResolverState state(*m_document, &element, parentStyle); |
| MatchResult result; |
| result.addMatchedProperties(&keyframe->properties()); |
| @@ -742,7 +742,7 @@ PassRefPtrWillBeRawPtr<PseudoElement> StyleResolver::createPseudoElementIfNeeded |
| return PseudoElement::create(&parent, pseudoId); |
| } |
| - StyleResolverState state(document(), &parent, parentStyle); |
| + StyleResolverState state(*m_document, &parent, parentStyle); |
| if (!pseudoStyleForElementInternal(parent, pseudoId, parentStyle, state)) |
| return nullptr; |
| RefPtr<RenderStyle> style = state.takeStyle(); |
| @@ -762,8 +762,8 @@ PassRefPtrWillBeRawPtr<PseudoElement> StyleResolver::createPseudoElementIfNeeded |
| bool StyleResolver::pseudoStyleForElementInternal(Element& element, const PseudoStyleRequest& pseudoStyleRequest, RenderStyle* parentStyle, StyleResolverState& state) |
| { |
| - ASSERT(document().frame()); |
| - ASSERT(document().settings()); |
| + ASSERT(m_document->frame()); |
| + ASSERT(m_document->settings()); |
| ASSERT(pseudoStyleRequest.pseudoId != FIRST_LINE_INHERITED); |
| StyleResolverParentScope::ensureParentStackIsPushed(); |
| @@ -815,7 +815,7 @@ bool StyleResolver::pseudoStyleForElementInternal(Element& element, const Pseudo |
| didAccess(); |
| if (state.style()->hasViewportUnits()) |
| - document().setHasViewportUnits(); |
| + m_document->setHasViewportUnits(); |
| return true; |
| } |
| @@ -826,7 +826,7 @@ PassRefPtr<RenderStyle> StyleResolver::pseudoStyleForElement(Element* element, c |
| if (!element) |
| return nullptr; |
| - StyleResolverState state(document(), element, parentStyle); |
| + StyleResolverState state(*m_document, element, parentStyle); |
| if (!pseudoStyleForElementInternal(*element, pseudoStyleRequest, parentStyle, state)) { |
| if (pseudoStyleRequest.type == PseudoStyleRequest::ForRenderer) |
| return nullptr; |
| @@ -843,11 +843,11 @@ PassRefPtr<RenderStyle> StyleResolver::pseudoStyleForElement(Element* element, c |
| PassRefPtr<RenderStyle> StyleResolver::styleForPage(int pageIndex) |
| { |
| ASSERT(!hasPendingAuthorStyleSheets()); |
| - resetDirectionAndWritingModeOnDocument(document()); |
| - StyleResolverState state(document(), document().documentElement()); // m_rootElementStyle will be set to the document style. |
| + resetDirectionAndWritingModeOnDocument(*m_document); |
| + StyleResolverState state(*m_document, m_document->documentElement()); // m_rootElementStyle will be set to the document style. |
| state.setStyle(RenderStyle::create()); |
| - const RenderStyle* rootElementStyle = state.rootElementStyle() ? state.rootElementStyle() : document().renderStyle(); |
| + const RenderStyle* rootElementStyle = state.rootElementStyle() ? state.rootElementStyle() : m_document->renderStyle(); |
| ASSERT(rootElementStyle); |
| state.style()->inheritFrom(rootElementStyle); |
| @@ -857,7 +857,7 @@ PassRefPtr<RenderStyle> StyleResolver::styleForPage(int pageIndex) |
| collector.matchPageRules(CSSDefaultStyleSheets::instance().defaultPrintStyle()); |
| - if (ScopedStyleResolver* scopedResolver = document().scopedStyleResolver()) |
| + if (ScopedStyleResolver* scopedResolver = m_document->scopedStyleResolver()) |
| scopedResolver->matchPageRules(collector); |
| state.setLineHeightValue(0); |
| @@ -890,13 +890,13 @@ void StyleResolver::collectViewportRules() |
| CSSDefaultStyleSheets& defaultStyleSheets = CSSDefaultStyleSheets::instance(); |
| viewportStyleResolver()->collectViewportRules(defaultStyleSheets.defaultStyle(), ViewportStyleResolver::UserAgentOrigin); |
| - if (!InspectorInstrumentation::applyViewportStyleOverride(&document(), this)) |
| + if (!InspectorInstrumentation::applyViewportStyleOverride(m_document, this)) |
| viewportStyleResolver()->collectViewportRules(defaultStyleSheets.defaultViewportStyle(), ViewportStyleResolver::UserAgentOrigin); |
| - if (document().isMobileDocument()) |
| + if (m_document->isMobileDocument()) |
| viewportStyleResolver()->collectViewportRules(defaultStyleSheets.defaultXHTMLMobileProfileStyle(), ViewportStyleResolver::UserAgentOrigin); |
| - if (ScopedStyleResolver* scopedResolver = document().scopedStyleResolver()) |
| + if (ScopedStyleResolver* scopedResolver = m_document->scopedStyleResolver()) |
| scopedResolver->collectViewportRulesTo(this); |
| viewportStyleResolver()->resolve(); |
| @@ -904,13 +904,13 @@ void StyleResolver::collectViewportRules() |
| PassRefPtr<RenderStyle> StyleResolver::defaultStyleForElement() |
| { |
| - StyleResolverState state(document(), 0); |
| + StyleResolverState state(*m_document, 0); |
| state.setStyle(RenderStyle::create()); |
| - state.fontBuilder().initForStyleResolve(document(), state.style()); |
| + state.fontBuilder().initForStyleResolve(*m_document, state.style()); |
| state.style()->setLineHeight(RenderStyle::initialLineHeight()); |
| state.setLineHeightValue(0); |
| state.fontBuilder().setInitial(state.style()->effectiveZoom()); |
| - state.style()->font().update(document().styleEngine()->fontSelector()); |
| + state.style()->font().update(m_document->styleEngine()->fontSelector()); |
| return state.takeStyle(); |
| } |
| @@ -926,13 +926,13 @@ PassRefPtr<RenderStyle> StyleResolver::styleForText(Text* textNode) |
| void StyleResolver::updateFont(StyleResolverState& state) |
| { |
| - state.fontBuilder().createFont(document().styleEngine()->fontSelector(), state.parentStyle(), state.style()); |
| + state.fontBuilder().createFont(m_document->styleEngine()->fontSelector(), state.parentStyle(), state.style()); |
| } |
| PassRefPtrWillBeRawPtr<StyleRuleList> StyleResolver::styleRulesForElement(Element* element, unsigned rulesToInclude) |
| { |
| ASSERT(element); |
| - StyleResolverState state(document(), element); |
| + StyleResolverState state(*m_document, element); |
| ElementRuleCollector collector(state.elementContext(), m_selectorFilter, state.style()); |
| collector.setMode(SelectorChecker::CollectingStyleRules); |
| collectPseudoRulesForElement(element, collector, NOPSEUDO, rulesToInclude); |
| @@ -942,7 +942,7 @@ PassRefPtrWillBeRawPtr<StyleRuleList> StyleResolver::styleRulesForElement(Elemen |
| PassRefPtrWillBeRawPtr<CSSRuleList> StyleResolver::pseudoCSSRulesForElement(Element* element, PseudoId pseudoId, unsigned rulesToInclude) |
| { |
| ASSERT(element); |
| - StyleResolverState state(document(), element); |
| + StyleResolverState state(*m_document, element); |
| ElementRuleCollector collector(state.elementContext(), m_selectorFilter, state.style()); |
| collector.setMode(SelectorChecker::CollectingCSSRules); |
| collectPseudoRulesForElement(element, collector, pseudoId, rulesToInclude); |
| @@ -1533,7 +1533,7 @@ void StyleResolver::printStats() |
| { |
| if (!m_styleResolverStats) |
| return; |
| - fprintf(stderr, "=== Style Resolver Stats (resolve #%u) (%s) ===\n", ++m_styleResolverStatsSequence, document().url().string().utf8().data()); |
| + fprintf(stderr, "=== Style Resolver Stats (resolve #%u) (%s) ===\n", ++m_styleResolverStatsSequence, m_document->url().string().utf8().data()); |
| fprintf(stderr, "%s\n", m_styleResolverStats->report().utf8().data()); |
| fprintf(stderr, "== Totals ==\n"); |
| fprintf(stderr, "%s\n", m_styleResolverStatsTotals->report().utf8().data()); |
| @@ -1541,10 +1541,10 @@ void StyleResolver::printStats() |
| void StyleResolver::applyPropertiesToStyle(const CSSPropertyValue* properties, size_t count, RenderStyle* style) |
| { |
| - StyleResolverState state(document(), document().documentElement(), style); |
| + StyleResolverState state(*m_document, m_document->documentElement(), style); |
| state.setStyle(style); |
| - state.fontBuilder().initForStyleResolve(document(), style); |
| + state.fontBuilder().initForStyleResolve(*m_document, style); |
| for (size_t i = 0; i < count; ++i) { |
| if (properties[i].value) { |