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

Unified Diff: Source/core/css/StyleResolver.h

Issue 15072003: Move StyleResolver and related classes to core/css/resolver (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 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
« no previous file with comments | « Source/core/css/StyleMedia.cpp ('k') | Source/core/css/StyleResolver.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/StyleResolver.h
diff --git a/Source/core/css/StyleResolver.h b/Source/core/css/StyleResolver.h
deleted file mode 100644
index 953ffe48d518b022d621e324e96dc913929ebe31..0000000000000000000000000000000000000000
--- a/Source/core/css/StyleResolver.h
+++ /dev/null
@@ -1,534 +0,0 @@
-/*
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef StyleResolver_h
-#define StyleResolver_h
-
-#include "core/css/CSSRuleList.h"
-#include "core/css/CSSToStyleMap.h"
-#include "core/css/CSSValueList.h"
-#include "core/css/DocumentRuleSets.h"
-#include "core/css/InspectorCSSOMWrappers.h"
-#include "core/css/MediaQueryExp.h"
-#include "core/css/RuleFeature.h"
-#include "core/css/RuleSet.h"
-#include "core/css/ScopedStyleResolver.h"
-#include "core/css/SelectorChecker.h"
-#include "core/css/SelectorFilter.h"
-#include "core/css/SiblingTraversalStrategies.h"
-#include "core/css/StyleResolverState.h"
-#include "core/css/ViewportStyleResolver.h"
-#include "RuntimeEnabledFeatures.h"
-#include "core/platform/LinkHash.h"
-#include "core/platform/ScrollTypes.h"
-#include "core/rendering/style/RenderStyle.h"
-#if ENABLE(SVG)
-#include "core/css/WebKitCSSSVGDocumentValue.h"
-#endif
-#include "core/platform/graphics/filters/custom/CustomFilterConstants.h"
-#include <wtf/HashMap.h>
-#include <wtf/HashSet.h>
-#include <wtf/RefPtr.h>
-#include <wtf/text/AtomicStringHash.h>
-#include <wtf/text/StringHash.h>
-#include <wtf/Vector.h>
-
-namespace WebCore {
-
-enum ESmartMinimumForFontSize { DoNotUseSmartMinimumForFontSize, UseSmartMinimumForFontFize };
-
-class CSSCursorImageValue;
-class CSSFontSelector;
-class CSSFontFace;
-class CSSFontFaceRule;
-class CSSImageGeneratorValue;
-class CSSImageSetValue;
-class CSSImageValue;
-class CSSPageRule;
-class CSSPrimitiveValue;
-class CSSProperty;
-class CSSRuleList;
-class CSSSelector;
-class CSSStyleSheet;
-class CSSValue;
-class ContainerNode;
-class CustomFilterOperation;
-class CustomFilterParameter;
-class CustomFilterParameterList;
-class CustomFilterProgram;
-struct CustomFilterProgramMixSettings;
-class DeprecatedStyleBuilder;
-class Document;
-class Element;
-class ElementRuleCollector;
-class Frame;
-class FrameView;
-class KURL;
-class KeyframeList;
-class KeyframeValue;
-class MediaQueryEvaluator;
-class Node;
-class RenderRegion;
-class RenderScrollbar;
-class RuleData;
-class RuleSet;
-class Settings;
-class StaticCSSRuleList;
-class StyleCustomFilterProgramCache;
-class StyleImage;
-class StyleKeyframe;
-class StylePendingImage;
-class StylePropertySet;
-class StyleRule;
-class StyleRuleHost;
-class StyleRuleKeyframes;
-class StyleRulePage;
-class StyleRuleRegion;
-class StyleShader;
-class StyleSheet;
-class StyleSheetList;
-class StyledElement;
-class ViewportStyleResolver;
-class WebKitCSSFilterValue;
-class WebKitCSSShaderValue;
-class WebKitCSSSVGDocumentValue;
-
-class MediaQueryResult {
- WTF_MAKE_NONCOPYABLE(MediaQueryResult); WTF_MAKE_FAST_ALLOCATED;
-public:
- MediaQueryResult(const MediaQueryExp& expr, bool result)
- : m_expression(expr)
- , m_result(result)
- {
- }
- void reportMemoryUsage(MemoryObjectInfo*) const;
-
- MediaQueryExp m_expression;
- bool m_result;
-};
-
-enum StyleSharingBehavior {
- AllowStyleSharing,
- DisallowStyleSharing,
-};
-
-// MatchOnlyUserAgentRules is used in media queries, where relative units
-// are interpreted according to the document root element style, and styled only
-// from the User Agent Stylesheet rules.
-
-enum RuleMatchingBehavior {
- MatchAllRules,
- MatchAllRulesExcludingSMIL,
- MatchOnlyUserAgentRules,
-};
-
-class PseudoStyleRequest {
-public:
- PseudoStyleRequest(PseudoId pseudoId, RenderScrollbar* scrollbar = 0, ScrollbarPart scrollbarPart = NoPart)
- : pseudoId(pseudoId)
- , scrollbarPart(scrollbarPart)
- , scrollbar(scrollbar)
- {
- }
-
- PseudoId pseudoId;
- ScrollbarPart scrollbarPart;
- RenderScrollbar* scrollbar;
-};
-
-class MatchRequest {
-public:
- MatchRequest(RuleSet* ruleSet, bool includeEmptyRules = false, const ContainerNode* scope = 0)
- : ruleSet(ruleSet)
- , includeEmptyRules(includeEmptyRules)
- , scope(scope) { }
- const RuleSet* ruleSet;
- const bool includeEmptyRules;
- const ContainerNode* scope;
-};
-
-// This class selects a RenderStyle for a given element based on a collection of stylesheets.
-class StyleResolver {
- WTF_MAKE_NONCOPYABLE(StyleResolver); WTF_MAKE_FAST_ALLOCATED;
-public:
- StyleResolver(Document*, bool matchAuthorAndUserStyles);
- ~StyleResolver();
-
- // Using these during tree walk will allow style selector to optimize child and descendant selector lookups.
- void pushParentElement(Element*);
- void popParentElement(Element*);
- void pushParentShadowRoot(const ShadowRoot*);
- void popParentShadowRoot(const ShadowRoot*);
- void addHostRule(StyleRuleHost* rule, bool hasDocumentSecurityOrigin, const ContainerNode* scope) { ensureScopeResolver()->addHostRule(rule, hasDocumentSecurityOrigin, scope); }
-
- PassRefPtr<RenderStyle> styleForElement(Element*, RenderStyle* parentStyle = 0, StyleSharingBehavior = AllowStyleSharing,
- RuleMatchingBehavior = MatchAllRules, RenderRegion* regionForStyling = 0);
-
- void keyframeStylesForAnimation(Element*, const RenderStyle*, KeyframeList&);
-
- PassRefPtr<RenderStyle> pseudoStyleForElement(Element*, const PseudoStyleRequest&, RenderStyle* parentStyle);
-
- PassRefPtr<RenderStyle> styleForPage(int pageIndex);
- PassRefPtr<RenderStyle> defaultStyleForElement();
- PassRefPtr<RenderStyle> styleForText(Text*);
-
- static PassRefPtr<RenderStyle> styleForDocument(Document*, CSSFontSelector* = 0);
-
- Color colorFromPrimitiveValue(CSSPrimitiveValue* value, bool forVisitedLink = false) const
- {
- return m_state.colorFromPrimitiveValue(value, forVisitedLink);
- }
- RenderStyle* style() const { return m_state.style(); }
- RenderStyle* parentStyle() const { return m_state.parentStyle(); }
- RenderStyle* rootElementStyle() const { return m_state.rootElementStyle(); }
- Element* element() { return m_state.element(); }
- Document* document() { return m_document; }
- ScopedStyleResolver* scopeResolver() const { return m_scopeResolver.get(); }
- bool hasParentNode() const { return m_state.parentNode(); }
-
- // FIXME: It could be better to call m_ruleSets.appendAuthorStyleSheets() directly after we factor StyleRsolver further.
- // https://bugs.webkit.org/show_bug.cgi?id=108890
- void appendAuthorStyleSheets(unsigned firstNew, const Vector<RefPtr<CSSStyleSheet> >&);
-
- DocumentRuleSets& ruleSets() { return m_ruleSets; }
- const DocumentRuleSets& ruleSets() const { return m_ruleSets; }
- SelectorFilter& selectorFilter() { return m_selectorFilter; }
-
- ScopedStyleResolver* ensureScopeResolver()
- {
- if (!m_scopeResolver)
- m_scopeResolver = adoptPtr(new ScopedStyleResolver());
- return m_scopeResolver.get();
- }
-
-private:
- void initElement(Element*);
- RenderStyle* locateSharedStyle();
- bool styleSharingCandidateMatchesRuleSet(RuleSet*);
- bool styleSharingCandidateMatchesHostRules();
- Node* locateCousinList(Element* parent, unsigned& visitedNodeCount) const;
- StyledElement* findSiblingForStyleSharing(Node*, unsigned& count) const;
- bool canShareStyleWithElement(StyledElement*) const;
-
- PassRefPtr<RenderStyle> styleForKeyframe(const RenderStyle*, const StyleKeyframe*, KeyframeValue&);
-
-public:
- // These methods will give back the set of rules that matched for a given element (or a pseudo-element).
- enum CSSRuleFilter {
- UAAndUserCSSRules = 1 << 1,
- AuthorCSSRules = 1 << 2,
- EmptyCSSRules = 1 << 3,
- CrossOriginCSSRules = 1 << 4,
- AllButEmptyCSSRules = UAAndUserCSSRules | AuthorCSSRules | CrossOriginCSSRules,
- AllCSSRules = AllButEmptyCSSRules | EmptyCSSRules,
- };
- PassRefPtr<CSSRuleList> styleRulesForElement(Element*, unsigned rulesToInclude = AllButEmptyCSSRules);
- PassRefPtr<CSSRuleList> pseudoStyleRulesForElement(Element*, PseudoId, unsigned rulesToInclude = AllButEmptyCSSRules);
-
- // Given a CSS keyword in the range (xx-small to -webkit-xxx-large), this function will return
- // the correct font size scaled relative to the user's default (medium).
- static float fontSizeForKeyword(Document*, int keyword, bool shouldUseFixedDefaultSize);
-
- // Given a font size in pixel, this function will return legacy font size between 1 and 7.
- static int legacyFontSize(Document*, int pixelFontSize, bool shouldUseFixedDefaultSize);
-
-public:
- void applyPropertyToStyle(CSSPropertyID, CSSValue*, RenderStyle*);
-
- void applyPropertyToCurrentStyle(CSSPropertyID, CSSValue*);
-
- void updateFont();
- void initializeFontStyle(Settings*);
-
- static float getComputedSizeFromSpecifiedSize(Document*, float zoomFactor, bool isAbsoluteSize, float specifiedSize, ESmartMinimumForFontSize = UseSmartMinimumForFontFize);
-
- void setFontSize(FontDescription&, float size);
-
-private:
- static float getComputedSizeFromSpecifiedSize(Document*, RenderStyle*, bool isAbsoluteSize, float specifiedSize, bool useSVGZoomRules);
-
-public:
- bool useSVGZoomRules();
-
- static bool colorFromPrimitiveValueIsDerivedFromElement(CSSPrimitiveValue*);
-
- bool hasSelectorForId(const AtomicString&) const;
- bool hasSelectorForClass(const AtomicString&) const;
- bool hasSelectorForAttribute(const AtomicString&) const;
-
- CSSFontSelector* fontSelector() const { return m_fontSelector.get(); }
-#if ENABLE(CSS_DEVICE_ADAPTATION)
- ViewportStyleResolver* viewportStyleResolver() { return m_viewportStyleResolver.get(); }
-#endif
-
- void addViewportDependentMediaQueryResult(const MediaQueryExp*, bool result);
- bool hasViewportDependentMediaQueries() const { return !m_viewportDependentMediaQueryResults.isEmpty(); }
- bool affectedByViewportChange() const;
-
- void addKeyframeStyle(PassRefPtr<StyleRuleKeyframes>);
-
- bool checkRegionStyle(Element* regionElement);
-
- bool usesSiblingRules() const { return !m_ruleSets.features().siblingRules.isEmpty(); }
- bool usesFirstLineRules() const { return m_ruleSets.features().usesFirstLineRules; }
- bool usesBeforeAfterRules() const { return m_ruleSets.features().usesBeforeAfterRules; }
-
- void invalidateMatchedPropertiesCache();
-
- void loadPendingShaders();
-#if ENABLE(SVG)
- void loadPendingSVGDocuments();
-#endif
-
- void loadPendingResources();
-
- struct RuleRange {
- RuleRange(int& firstRuleIndex, int& lastRuleIndex): firstRuleIndex(firstRuleIndex), lastRuleIndex(lastRuleIndex) { }
- int& firstRuleIndex;
- int& lastRuleIndex;
- };
-
- struct MatchRanges {
- MatchRanges() : firstUARule(-1), lastUARule(-1), firstAuthorRule(-1), lastAuthorRule(-1), firstUserRule(-1), lastUserRule(-1) { }
- int firstUARule;
- int lastUARule;
- int firstAuthorRule;
- int lastAuthorRule;
- int firstUserRule;
- int lastUserRule;
- RuleRange UARuleRange() { return RuleRange(firstUARule, lastUARule); }
- RuleRange authorRuleRange() { return RuleRange(firstAuthorRule, lastAuthorRule); }
- RuleRange userRuleRange() { return RuleRange(firstUserRule, lastUserRule); }
- };
-
- struct MatchedProperties {
- MatchedProperties();
- ~MatchedProperties();
- void reportMemoryUsage(MemoryObjectInfo*) const;
-
- RefPtr<StylePropertySet> properties;
- union {
- struct {
- unsigned linkMatchType : 2;
- unsigned whitelistType : 2;
- };
- // Used to make sure all memory is zero-initialized since we compute the hash over the bytes of this object.
- void* possiblyPaddedMember;
- };
- };
-
- struct MatchResult {
- MatchResult() : isCacheable(true) { }
- Vector<MatchedProperties, 64> matchedProperties;
- Vector<StyleRule*, 64> matchedRules;
- MatchRanges ranges;
- bool isCacheable;
-
- void addMatchedProperties(const StylePropertySet* properties, StyleRule* = 0, unsigned linkMatchType = SelectorChecker::MatchAll, PropertyWhitelistType = PropertyWhitelistNone);
- };
-
-private:
- void matchUARules(ElementRuleCollector&, RuleSet*);
- void matchAuthorRules(ElementRuleCollector&, bool includeEmptyRules);
- void matchShadowDistributedRules(ElementRuleCollector&, bool includeEmptyRules, RuleRange&);
- void matchHostRules(ElementRuleCollector&, bool includeEmptyRules);
- void matchScopedAuthorRules(ElementRuleCollector&, bool includeEmptyRules);
- void matchAllRules(ElementRuleCollector&, bool matchAuthorAndUserStyles, bool includeSMILProperties);
- void matchUARules(ElementRuleCollector&);
- void matchUserRules(ElementRuleCollector&, bool includeEmptyRules);
-
-private:
- // This function fixes up the default font size if it detects that the current generic font family has changed. -dwh
- void checkForGenericFamilyChange(RenderStyle*, RenderStyle* parentStyle);
- void checkForZoomChange(RenderStyle*, RenderStyle* parentStyle);
-
- void adjustRenderStyle(RenderStyle* styleToAdjust, RenderStyle* parentStyle, Element*);
- void adjustGridItemPosition(RenderStyle* styleToAdjust) const;
-
- bool fastRejectSelector(const RuleData&) const;
-
- void applyMatchedProperties(const MatchResult&, const Element*);
-
- enum StyleApplicationPass {
- VariableDefinitions,
- HighPriorityProperties,
- LowPriorityProperties
- };
- template <StyleApplicationPass pass>
- void applyMatchedProperties(const MatchResult&, bool important, int startIndex, int endIndex, bool inheritedOnly);
- template <StyleApplicationPass pass>
- void applyProperties(const StylePropertySet* properties, StyleRule*, bool isImportant, bool inheritedOnly, PropertyWhitelistType = PropertyWhitelistNone);
- template <StyleApplicationPass pass>
- void applyAnimatedProperties(const Element* target);
- void resolveVariables(CSSPropertyID, CSSValue*, Vector<std::pair<CSSPropertyID, String> >& knownExpressions);
- static bool isValidRegionStyleProperty(CSSPropertyID);
- static bool isValidCueStyleProperty(CSSPropertyID);
- void matchPageRules(MatchResult&, RuleSet*, bool isLeftPage, bool isFirstPage, const String& pageName);
- void matchPageRulesForList(Vector<StyleRulePage*>& matchedRules, const Vector<StyleRulePage*>&, bool isLeftPage, bool isFirstPage, const String& pageName);
- Settings* documentSettings() { return m_document->settings(); }
-
- bool isLeftPage(int pageIndex) const;
- bool isRightPage(int pageIndex) const { return !isLeftPage(pageIndex); }
- bool isFirstPage(int pageIndex) const;
- String pageName(int pageIndex) const;
-
- DocumentRuleSets m_ruleSets;
-
- typedef HashMap<AtomicStringImpl*, RefPtr<StyleRuleKeyframes> > KeyframesRuleMap;
- KeyframesRuleMap m_keyframesRuleMap;
-
-public:
- static RenderStyle* styleNotYetAvailable() { return s_styleNotYetAvailable; }
-
- PassRefPtr<StyleImage> styleImage(CSSPropertyID, CSSValue*);
- PassRefPtr<StyleImage> cachedOrPendingFromValue(CSSPropertyID, CSSImageValue*);
- PassRefPtr<StyleImage> generatedOrPendingFromValue(CSSPropertyID, CSSImageGeneratorValue*);
- PassRefPtr<StyleImage> setOrPendingFromValue(CSSPropertyID, CSSImageSetValue*);
- PassRefPtr<StyleImage> cursorOrPendingFromValue(CSSPropertyID, CSSCursorImageValue*);
-
- bool applyPropertyToRegularStyle() const { return m_state.applyPropertyToRegularStyle(); }
- bool applyPropertyToVisitedLinkStyle() const { return m_state.applyPropertyToVisitedLinkStyle(); }
-
- static Length convertToIntLength(CSSPrimitiveValue*, RenderStyle*, RenderStyle* rootStyle, double multiplier = 1);
- static Length convertToFloatLength(CSSPrimitiveValue*, RenderStyle*, RenderStyle* rootStyle, double multiplier = 1);
-
- CSSToStyleMap* styleMap() { return &m_styleMap; }
- InspectorCSSOMWrappers& inspectorCSSOMWrappers() { return m_inspectorCSSOMWrappers; }
- const FontDescription& fontDescription() { return m_state.fontDescription(); }
- const FontDescription& parentFontDescription() { return m_state.parentFontDescription(); }
- void setFontDescription(const FontDescription& fontDescription) { m_state.setFontDescription(fontDescription); }
- void setZoom(float f) { m_state.setZoom(f); }
- void setEffectiveZoom(float f) { m_state.setEffectiveZoom(f); }
- void setWritingMode(WritingMode writingMode) { m_state.setWritingMode(writingMode); }
- void setTextOrientation(TextOrientation textOrientation) { m_state.setTextOrientation(textOrientation); }
-
- void reportMemoryUsage(MemoryObjectInfo*) const;
-
-private:
- static RenderStyle* s_styleNotYetAvailable;
-
- void cacheBorderAndBackground();
-
-private:
- bool canShareStyleWithControl(StyledElement*) const;
-
- void applyProperty(CSSPropertyID, CSSValue*);
-
-#if ENABLE(SVG)
- void applySVGProperty(CSSPropertyID, CSSValue*);
-#endif
-
- PassRefPtr<StyleImage> loadPendingImage(StylePendingImage*);
- void loadPendingImages();
-
- static unsigned computeMatchedPropertiesHash(const MatchedProperties*, unsigned size);
- struct MatchedPropertiesCacheItem {
- void reportMemoryUsage(MemoryObjectInfo*) const;
- Vector<MatchedProperties> matchedProperties;
- MatchRanges ranges;
- RefPtr<RenderStyle> renderStyle;
- RefPtr<RenderStyle> parentRenderStyle;
- };
- const MatchedPropertiesCacheItem* findFromMatchedPropertiesCache(unsigned hash, const MatchResult&);
- void addToMatchedPropertiesCache(const RenderStyle*, const RenderStyle* parentStyle, unsigned hash, const MatchResult&);
-
- // Every N additions to the matched declaration cache trigger a sweep where entries holding
- // the last reference to a style declaration are garbage collected.
- void sweepMatchedPropertiesCache(Timer<StyleResolver>*);
-
- bool classNamesAffectedByRules(const SpaceSplitString&) const;
- bool sharingCandidateHasIdenticalStyleAffectingAttributes(StyledElement*) const;
-
- unsigned m_matchedPropertiesCacheAdditionsSinceLastSweep;
-
- typedef HashMap<unsigned, MatchedPropertiesCacheItem> MatchedPropertiesCache;
- MatchedPropertiesCache m_matchedPropertiesCache;
-
- Timer<StyleResolver> m_matchedPropertiesCacheSweepTimer;
-
- OwnPtr<MediaQueryEvaluator> m_medium;
- RefPtr<RenderStyle> m_rootDefaultStyle;
-
- Document* m_document;
- SelectorFilter m_selectorFilter;
-
- bool m_matchAuthorAndUserStyles;
-
- RefPtr<CSSFontSelector> m_fontSelector;
- Vector<OwnPtr<MediaQueryResult> > m_viewportDependentMediaQueryResults;
-
-#if ENABLE(CSS_DEVICE_ADAPTATION)
- RefPtr<ViewportStyleResolver> m_viewportStyleResolver;
-#endif
-
- const DeprecatedStyleBuilder& m_styleBuilder;
-
- OwnPtr<ScopedStyleResolver> m_scopeResolver;
- CSSToStyleMap m_styleMap;
- InspectorCSSOMWrappers m_inspectorCSSOMWrappers;
-
- StyleResolverState m_state;
-
- OwnPtr<StyleCustomFilterProgramCache> m_customFilterProgramCache;
-
- friend class DeprecatedStyleBuilder;
- friend bool operator==(const MatchedProperties&, const MatchedProperties&);
- friend bool operator!=(const MatchedProperties&, const MatchedProperties&);
- friend bool operator==(const MatchRanges&, const MatchRanges&);
- friend bool operator!=(const MatchRanges&, const MatchRanges&);
-};
-
-inline bool StyleResolver::hasSelectorForAttribute(const AtomicString &attributeName) const
-{
- ASSERT(!attributeName.isEmpty());
- return m_ruleSets.features().attrsInRules.contains(attributeName.impl());
-}
-
-inline bool StyleResolver::hasSelectorForClass(const AtomicString& classValue) const
-{
- ASSERT(!classValue.isEmpty());
- return m_ruleSets.features().classesInRules.contains(classValue.impl());
-}
-
-inline bool StyleResolver::hasSelectorForId(const AtomicString& idValue) const
-{
- ASSERT(!idValue.isEmpty());
- return m_ruleSets.features().idsInRules.contains(idValue.impl());
-}
-
-inline bool checkRegionSelector(const CSSSelector* regionSelector, Element* regionElement)
-{
- if (!regionSelector || !regionElement)
- return false;
-
- SelectorChecker selectorChecker(regionElement->document(), SelectorChecker::QueryingRules);
- for (const CSSSelector* s = regionSelector; s; s = CSSSelectorList::next(s)) {
- SelectorChecker::SelectorCheckingContext selectorCheckingContext(s, regionElement, SelectorChecker::VisitedMatchDisabled);
- PseudoId ignoreDynamicPseudo = NOPSEUDO;
- if (selectorChecker.match(selectorCheckingContext, ignoreDynamicPseudo, DOMSiblingTraversalStrategy()) == SelectorChecker::SelectorMatches)
- return true;
- }
- return false;
-}
-
-} // namespace WebCore
-
-#endif // StyleResolver_h
« no previous file with comments | « Source/core/css/StyleMedia.cpp ('k') | Source/core/css/StyleResolver.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698