OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 3 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
4 * Copyright (C) 2012 Google Inc. All rights reserved. | 4 * Copyright (C) 2012 Google Inc. All rights reserved. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) | 83 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) |
84 features.add(m_authorStyleSheets[i]->contents()->ruleSet().features()); | 84 features.add(m_authorStyleSheets[i]->contents()->ruleSet().features()); |
85 } | 85 } |
86 | 86 |
87 void ScopedStyleResolver::resetAuthorStyle() | 87 void ScopedStyleResolver::resetAuthorStyle() |
88 { | 88 { |
89 m_authorStyleSheets.clear(); | 89 m_authorStyleSheets.clear(); |
90 m_keyframesRuleMap.clear(); | 90 m_keyframesRuleMap.clear(); |
91 } | 91 } |
92 | 92 |
93 bool ScopedStyleResolver::checkRegionStyle(Element* regionElement) | |
94 { | |
95 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) { | |
96 const RuleSet& ruleSet = m_authorStyleSheets[i]->contents()->ruleSet(); | |
97 for (unsigned i = 0; i < ruleSet.m_regionSelectorsAndRuleSets.size(); ++
i) { | |
98 ASSERT(ruleSet.m_regionSelectorsAndRuleSets.at(i).ruleSet.get()); | |
99 if (checkRegionSelector(ruleSet.m_regionSelectorsAndRuleSets.at(i).s
elector, regionElement)) | |
100 return true; | |
101 } | |
102 } | |
103 return false; | |
104 } | |
105 | |
106 const StyleRuleKeyframes* ScopedStyleResolver::keyframeStylesForAnimation(const
StringImpl* animationName) | 93 const StyleRuleKeyframes* ScopedStyleResolver::keyframeStylesForAnimation(const
StringImpl* animationName) |
107 { | 94 { |
108 if (m_keyframesRuleMap.isEmpty()) | 95 if (m_keyframesRuleMap.isEmpty()) |
109 return 0; | 96 return 0; |
110 | 97 |
111 KeyframesRuleMap::iterator it = m_keyframesRuleMap.find(animationName); | 98 KeyframesRuleMap::iterator it = m_keyframesRuleMap.find(animationName); |
112 if (it == m_keyframesRuleMap.end()) | 99 if (it == m_keyframesRuleMap.end()) |
113 return 0; | 100 return 0; |
114 | 101 |
115 return it->value.get(); | 102 return it->value.get(); |
(...skipping 23 matching lines...) Expand all Loading... |
139 | 126 |
140 if (m_scopingNode.isShadowRoot()) { | 127 if (m_scopingNode.isShadowRoot()) { |
141 scopingNode = toShadowRoot(m_scopingNode).host(); | 128 scopingNode = toShadowRoot(m_scopingNode).host(); |
142 behaviorAtBoundary |= SelectorChecker::ScopeIsShadowHost; | 129 behaviorAtBoundary |= SelectorChecker::ScopeIsShadowHost; |
143 } | 130 } |
144 | 131 |
145 RuleRange ruleRange = collector.matchedResult().ranges.authorRuleRange(); | 132 RuleRange ruleRange = collector.matchedResult().ranges.authorRuleRange(); |
146 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) { | 133 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) { |
147 MatchRequest matchRequest(&m_authorStyleSheets[i]->contents()->ruleSet()
, includeEmptyRules, scopingNode, applyAuthorStyles, i, m_authorStyleSheets[i]); | 134 MatchRequest matchRequest(&m_authorStyleSheets[i]->contents()->ruleSet()
, includeEmptyRules, scopingNode, applyAuthorStyles, i, m_authorStyleSheets[i]); |
148 collector.collectMatchingRules(matchRequest, ruleRange, static_cast<Sele
ctorChecker::BehaviorAtBoundary>(behaviorAtBoundary), cascadeScope, cascadeOrder
); | 135 collector.collectMatchingRules(matchRequest, ruleRange, static_cast<Sele
ctorChecker::BehaviorAtBoundary>(behaviorAtBoundary), cascadeScope, cascadeOrder
); |
149 collector.collectMatchingRulesForRegion(matchRequest, ruleRange, static_
cast<SelectorChecker::BehaviorAtBoundary>(behaviorAtBoundary), cascadeScope, cas
cadeOrder); | |
150 } | 136 } |
151 } | 137 } |
152 | 138 |
153 void ScopedStyleResolver::matchPageRules(PageRuleCollector& collector) | 139 void ScopedStyleResolver::matchPageRules(PageRuleCollector& collector) |
154 { | 140 { |
155 // Only consider the global author RuleSet for @page rules, as per the HTML5
spec. | 141 // Only consider the global author RuleSet for @page rules, as per the HTML5
spec. |
156 ASSERT(m_scopingNode.isDocumentNode()); | 142 ASSERT(m_scopingNode.isDocumentNode()); |
157 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) | 143 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) |
158 collector.matchPageRules(&m_authorStyleSheets[i]->contents()->ruleSet())
; | 144 collector.matchPageRules(&m_authorStyleSheets[i]->contents()->ruleSet())
; |
159 } | 145 } |
160 | 146 |
161 void ScopedStyleResolver::collectViewportRulesTo(StyleResolver* resolver) const | 147 void ScopedStyleResolver::collectViewportRulesTo(StyleResolver* resolver) const |
162 { | 148 { |
163 if (!m_scopingNode.isDocumentNode()) | 149 if (!m_scopingNode.isDocumentNode()) |
164 return; | 150 return; |
165 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) | 151 for (size_t i = 0; i < m_authorStyleSheets.size(); ++i) |
166 resolver->viewportStyleResolver()->collectViewportRules(&m_authorStyleSh
eets[i]->contents()->ruleSet(), ViewportStyleResolver::AuthorOrigin); | 152 resolver->viewportStyleResolver()->collectViewportRules(&m_authorStyleSh
eets[i]->contents()->ruleSet(), ViewportStyleResolver::AuthorOrigin); |
167 } | 153 } |
168 | 154 |
169 } // namespace WebCore | 155 } // namespace WebCore |
OLD | NEW |