| 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 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 } | 225 } |
| 226 | 226 |
| 227 void StyleResolver::matchAuthorRules(Element* element, ElementRuleCollector& col
lector) | 227 void StyleResolver::matchAuthorRules(Element* element, ElementRuleCollector& col
lector) |
| 228 { | 228 { |
| 229 collector.clearMatchedRules(); | 229 collector.clearMatchedRules(); |
| 230 collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
matchedProperties.size() - 1; | 230 collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
matchedProperties.size() - 1; |
| 231 | 231 |
| 232 // TODO(esprehn): Eliminate CascadeOrder. | 232 // TODO(esprehn): Eliminate CascadeOrder. |
| 233 CascadeOrder cascadeOrder = 0; | 233 CascadeOrder cascadeOrder = 0; |
| 234 | 234 |
| 235 // TODO(esprehn): This can only match :host rules, we should just store | |
| 236 // them in a separate RuleSet. | |
| 237 if (ShadowRoot* shadowRoot = element->shadowRoot()) | 235 if (ShadowRoot* shadowRoot = element->shadowRoot()) |
| 238 shadowRoot->scopedStyleResolver().collectMatchingAuthorRules(collector,
cascadeOrder++); | 236 shadowRoot->scopedStyleResolver().collectMatchingHostRules(collector, ca
scadeOrder++); |
| 239 | 237 |
| 240 ScopedStyleResolver& resolver = element->treeScope().scopedStyleResolver(); | 238 ScopedStyleResolver& resolver = element->treeScope().scopedStyleResolver(); |
| 241 resolver.collectMatchingAuthorRules(collector, cascadeOrder); | 239 resolver.collectMatchingAuthorRules(collector, cascadeOrder); |
| 242 | 240 |
| 243 collector.sortAndTransferMatchedRules(); | 241 collector.sortAndTransferMatchedRules(); |
| 244 } | 242 } |
| 245 | 243 |
| 246 void StyleResolver::matchUARules(ElementRuleCollector& collector) | 244 void StyleResolver::matchUARules(ElementRuleCollector& collector) |
| 247 { | 245 { |
| 248 collector.setMatchingUARules(true); | |
| 249 | |
| 250 collector.clearMatchedRules(); | 246 collector.clearMatchedRules(); |
| 251 collector.matchedResult().ranges.lastUARule = collector.matchedResult().matc
hedProperties.size() - 1; | 247 collector.matchedResult().ranges.lastUARule = collector.matchedResult().matc
hedProperties.size() - 1; |
| 252 | 248 |
| 253 RuleRange ruleRange = collector.matchedResult().ranges.UARuleRange(); | 249 RuleRange ruleRange = collector.matchedResult().ranges.UARuleRange(); |
| 254 collector.collectMatchingRules(MatchRequest(&defaultStyles()), ruleRange); | 250 collector.collectMatchingRules(MatchRequest(&defaultStyles()), ruleRange); |
| 255 | 251 |
| 256 collector.sortAndTransferMatchedRules(); | 252 collector.sortAndTransferMatchedRules(); |
| 257 | |
| 258 collector.setMatchingUARules(false); | |
| 259 } | 253 } |
| 260 | 254 |
| 261 void StyleResolver::matchAllRules(StyleResolverState& state, ElementRuleCollecto
r& collector) | 255 void StyleResolver::matchAllRules(StyleResolverState& state, ElementRuleCollecto
r& collector) |
| 262 { | 256 { |
| 263 matchUARules(collector); | 257 matchUARules(collector); |
| 264 matchAuthorRules(state.element(), collector); | 258 matchAuthorRules(state.element(), collector); |
| 265 | 259 |
| 266 if (state.element()->isStyledElement()) { | 260 if (state.element()->isStyledElement()) { |
| 267 if (state.element()->inlineStyle()) { | 261 if (state.element()->inlineStyle()) { |
| 268 // Inline style is immutable as long as there is no CSSOM wrapper. | 262 // Inline style is immutable as long as there is no CSSOM wrapper. |
| (...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 bool StyleResolver::mediaQueryAffectedByViewportChange() const | 778 bool StyleResolver::mediaQueryAffectedByViewportChange() const |
| 785 { | 779 { |
| 786 for (unsigned i = 0; i < m_viewportDependentMediaQueryResults.size(); ++i) { | 780 for (unsigned i = 0; i < m_viewportDependentMediaQueryResults.size(); ++i) { |
| 787 if (m_medium->eval(m_viewportDependentMediaQueryResults[i]->expression()
) != m_viewportDependentMediaQueryResults[i]->result()) | 781 if (m_medium->eval(m_viewportDependentMediaQueryResults[i]->expression()
) != m_viewportDependentMediaQueryResults[i]->result()) |
| 788 return true; | 782 return true; |
| 789 } | 783 } |
| 790 return false; | 784 return false; |
| 791 } | 785 } |
| 792 | 786 |
| 793 } // namespace blink | 787 } // namespace blink |
| OLD | NEW |