| 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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 | 232 |
| 233 void StyleResolver::clearStyleSharingList() | 233 void StyleResolver::clearStyleSharingList() |
| 234 { | 234 { |
| 235 m_styleSharingLists.resize(0); | 235 m_styleSharingLists.resize(0); |
| 236 } | 236 } |
| 237 | 237 |
| 238 StyleResolver::~StyleResolver() | 238 StyleResolver::~StyleResolver() |
| 239 { | 239 { |
| 240 } | 240 } |
| 241 | 241 |
| 242 static inline bool applyAuthorStylesOf(const Element* element) | |
| 243 { | |
| 244 return element->treeScope().applyAuthorStyles(); | |
| 245 } | |
| 246 | |
| 247 void StyleResolver::matchAuthorRulesForShadowHost(Element* element, ElementRuleC
ollector& collector, bool includeEmptyRules, Vector<RawPtr<ScopedStyleResolver>,
8>& resolvers, Vector<RawPtr<ScopedStyleResolver>, 8>& resolversInShadowTree) | 242 void StyleResolver::matchAuthorRulesForShadowHost(Element* element, ElementRuleC
ollector& collector, bool includeEmptyRules, Vector<RawPtr<ScopedStyleResolver>,
8>& resolvers, Vector<RawPtr<ScopedStyleResolver>, 8>& resolversInShadowTree) |
| 248 { | 243 { |
| 249 collector.clearMatchedRules(); | 244 collector.clearMatchedRules(); |
| 250 collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
matchedProperties.size() - 1; | 245 collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
matchedProperties.size() - 1; |
| 251 | 246 |
| 252 CascadeScope cascadeScope = 0; | 247 CascadeScope cascadeScope = 0; |
| 253 CascadeOrder cascadeOrder = 0; | 248 CascadeOrder cascadeOrder = 0; |
| 254 bool applyAuthorStyles = applyAuthorStylesOf(element); | |
| 255 | 249 |
| 256 for (int j = resolversInShadowTree.size() - 1; j >= 0; --j) | 250 for (int j = resolversInShadowTree.size() - 1; j >= 0; --j) |
| 257 resolversInShadowTree.at(j)->collectMatchingAuthorRules(collector, inclu
deEmptyRules, applyAuthorStyles, cascadeScope, cascadeOrder++); | 251 resolversInShadowTree.at(j)->collectMatchingAuthorRules(collector, inclu
deEmptyRules, cascadeScope, cascadeOrder++); |
| 258 | 252 |
| 259 if (resolvers.isEmpty() || resolvers.first()->treeScope() != element->treeSc
ope()) | 253 if (resolvers.isEmpty() || resolvers.first()->treeScope() != element->treeSc
ope()) |
| 260 ++cascadeScope; | 254 ++cascadeScope; |
| 261 cascadeOrder += resolvers.size(); | 255 cascadeOrder += resolvers.size(); |
| 262 for (unsigned i = 0; i < resolvers.size(); ++i) | 256 for (unsigned i = 0; i < resolvers.size(); ++i) |
| 263 resolvers.at(i)->collectMatchingAuthorRules(collector, includeEmptyRules
, applyAuthorStyles, cascadeScope++, --cascadeOrder); | 257 resolvers.at(i)->collectMatchingAuthorRules(collector, includeEmptyRules
, cascadeScope++, --cascadeOrder); |
| 264 | 258 |
| 265 collector.sortAndTransferMatchedRules(); | 259 collector.sortAndTransferMatchedRules(); |
| 266 } | 260 } |
| 267 | 261 |
| 268 void StyleResolver::matchAuthorRules(Element* element, ElementRuleCollector& col
lector, bool includeEmptyRules) | 262 void StyleResolver::matchAuthorRules(Element* element, ElementRuleCollector& col
lector, bool includeEmptyRules) |
| 269 { | 263 { |
| 270 collector.clearMatchedRules(); | 264 collector.clearMatchedRules(); |
| 271 collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
matchedProperties.size() - 1; | 265 collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
matchedProperties.size() - 1; |
| 272 | 266 |
| 273 bool applyAuthorStyles = applyAuthorStylesOf(element); | |
| 274 | |
| 275 Vector<RawPtr<ScopedStyleResolver>, 8> resolvers; | 267 Vector<RawPtr<ScopedStyleResolver>, 8> resolvers; |
| 276 resolvers.append(&element->treeScope().scopedStyleResolver()); | 268 resolvers.append(&element->treeScope().scopedStyleResolver()); |
| 277 | 269 |
| 278 Vector<RawPtr<ScopedStyleResolver>, 8> resolversInShadowTree; | 270 Vector<RawPtr<ScopedStyleResolver>, 8> resolversInShadowTree; |
| 279 collectScopedResolversForHostedShadowTrees(element, resolversInShadowTree); | 271 collectScopedResolversForHostedShadowTrees(element, resolversInShadowTree); |
| 280 if (!resolversInShadowTree.isEmpty()) { | 272 if (!resolversInShadowTree.isEmpty()) { |
| 281 matchAuthorRulesForShadowHost(element, collector, includeEmptyRules, res
olvers, resolversInShadowTree); | 273 matchAuthorRulesForShadowHost(element, collector, includeEmptyRules, res
olvers, resolversInShadowTree); |
| 282 return; | 274 return; |
| 283 } | 275 } |
| 284 | 276 |
| 285 if (resolvers.isEmpty()) | 277 if (resolvers.isEmpty()) |
| 286 return; | 278 return; |
| 287 | 279 |
| 288 CascadeScope cascadeScope = 0; | 280 CascadeScope cascadeScope = 0; |
| 289 CascadeOrder cascadeOrder = resolvers.size(); | 281 CascadeOrder cascadeOrder = resolvers.size(); |
| 290 for (unsigned i = 0; i < resolvers.size(); ++i, --cascadeOrder) { | 282 for (unsigned i = 0; i < resolvers.size(); ++i, --cascadeOrder) { |
| 291 ScopedStyleResolver* resolver = resolvers.at(i); | 283 ScopedStyleResolver* resolver = resolvers.at(i); |
| 292 // FIXME: Need to clarify how to treat style scoped. | 284 // FIXME: Need to clarify how to treat style scoped. |
| 293 resolver->collectMatchingAuthorRules(collector, includeEmptyRules, apply
AuthorStyles, cascadeScope++, resolver->treeScope() == element->treeScope() && r
esolver->treeScope().rootNode().isShadowRoot() ? 0 : cascadeOrder); | 285 resolver->collectMatchingAuthorRules(collector, includeEmptyRules, casca
deScope++, resolver->treeScope() == element->treeScope() && resolver->treeScope(
).rootNode().isShadowRoot() ? 0 : cascadeOrder); |
| 294 } | 286 } |
| 295 | 287 |
| 296 collector.sortAndTransferMatchedRules(); | 288 collector.sortAndTransferMatchedRules(); |
| 297 } | 289 } |
| 298 | 290 |
| 299 void StyleResolver::matchUARules(ElementRuleCollector& collector) | 291 void StyleResolver::matchUARules(ElementRuleCollector& collector) |
| 300 { | 292 { |
| 301 collector.setMatchingUARules(true); | 293 collector.setMatchingUARules(true); |
| 302 | 294 |
| 303 matchUARules(collector, &defaultStyles()); | 295 matchUARules(collector, &defaultStyles()); |
| (...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 858 bool StyleResolver::mediaQueryAffectedByViewportChange() const | 850 bool StyleResolver::mediaQueryAffectedByViewportChange() const |
| 859 { | 851 { |
| 860 for (unsigned i = 0; i < m_viewportDependentMediaQueryResults.size(); ++i) { | 852 for (unsigned i = 0; i < m_viewportDependentMediaQueryResults.size(); ++i) { |
| 861 if (m_medium->eval(m_viewportDependentMediaQueryResults[i]->expression()
) != m_viewportDependentMediaQueryResults[i]->result()) | 853 if (m_medium->eval(m_viewportDependentMediaQueryResults[i]->expression()
) != m_viewportDependentMediaQueryResults[i]->result()) |
| 862 return true; | 854 return true; |
| 863 } | 855 } |
| 864 return false; | 856 return false; |
| 865 } | 857 } |
| 866 | 858 |
| 867 } // namespace blink | 859 } // namespace blink |
| OLD | NEW |