| 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. | 5 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. |
| 6 * All rights reserved. | 6 * All rights reserved. |
| 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
| 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 10 * (http://www.torchmobile.com/) | 10 * (http://www.torchmobile.com/) |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 // |parentStyleSheet| is 0 if and only if the |rule| is coming from User | 279 // |parentStyleSheet| is 0 if and only if the |rule| is coming from User |
| 280 // Agent. In this case, it is safe to create CSSOM wrappers without | 280 // Agent. In this case, it is safe to create CSSOM wrappers without |
| 281 // parentStyleSheets as they will be used only by inspector which will not try | 281 // parentStyleSheets as they will be used only by inspector which will not try |
| 282 // to edit them. | 282 // to edit them. |
| 283 CSSRule* cssRule = nullptr; | 283 CSSRule* cssRule = nullptr; |
| 284 if (parentStyleSheet) | 284 if (parentStyleSheet) |
| 285 cssRule = findStyleRule(parentStyleSheet, rule); | 285 cssRule = findStyleRule(parentStyleSheet, rule); |
| 286 else | 286 else |
| 287 cssRule = rule->createCSSOMWrapper(); | 287 cssRule = rule->createCSSOMWrapper(); |
| 288 ASSERT(!parentStyleSheet || cssRule); | 288 ASSERT(!parentStyleSheet || cssRule); |
| 289 ensureRuleList()->rules().append(cssRule); | 289 ensureRuleList()->rules().push_back(cssRule); |
| 290 } | 290 } |
| 291 | 291 |
| 292 void ElementRuleCollector::sortAndTransferMatchedRules() { | 292 void ElementRuleCollector::sortAndTransferMatchedRules() { |
| 293 if (m_matchedRules.isEmpty()) | 293 if (m_matchedRules.isEmpty()) |
| 294 return; | 294 return; |
| 295 | 295 |
| 296 sortMatchedRules(); | 296 sortMatchedRules(); |
| 297 | 297 |
| 298 if (m_mode == SelectorChecker::CollectingStyleRules) { | 298 if (m_mode == SelectorChecker::CollectingStyleRules) { |
| 299 for (unsigned i = 0; i < m_matchedRules.size(); ++i) | 299 for (unsigned i = 0; i < m_matchedRules.size(); ++i) |
| 300 ensureStyleRuleList()->append(m_matchedRules[i].ruleData()->rule()); | 300 ensureStyleRuleList()->push_back(m_matchedRules[i].ruleData()->rule()); |
| 301 return; | 301 return; |
| 302 } | 302 } |
| 303 | 303 |
| 304 if (m_mode == SelectorChecker::CollectingCSSRules) { | 304 if (m_mode == SelectorChecker::CollectingCSSRules) { |
| 305 for (unsigned i = 0; i < m_matchedRules.size(); ++i) | 305 for (unsigned i = 0; i < m_matchedRules.size(); ++i) |
| 306 appendCSSOMWrapperForRule( | 306 appendCSSOMWrapperForRule( |
| 307 const_cast<CSSStyleSheet*>(m_matchedRules[i].parentStyleSheet()), | 307 const_cast<CSSStyleSheet*>(m_matchedRules[i].parentStyleSheet()), |
| 308 m_matchedRules[i].ruleData()->rule()); | 308 m_matchedRules[i].ruleData()->rule()); |
| 309 return; | 309 return; |
| 310 } | 310 } |
| (...skipping 24 matching lines...) Expand all Loading... |
| 335 if (!m_style || dynamicPseudo >= FirstInternalPseudoId) | 335 if (!m_style || dynamicPseudo >= FirstInternalPseudoId) |
| 336 return; | 336 return; |
| 337 if ((dynamicPseudo == PseudoIdBefore || dynamicPseudo == PseudoIdAfter) && | 337 if ((dynamicPseudo == PseudoIdBefore || dynamicPseudo == PseudoIdAfter) && |
| 338 !ruleData.rule()->properties().hasProperty(CSSPropertyContent)) | 338 !ruleData.rule()->properties().hasProperty(CSSPropertyContent)) |
| 339 return; | 339 return; |
| 340 m_style->setHasPseudoStyle(dynamicPseudo); | 340 m_style->setHasPseudoStyle(dynamicPseudo); |
| 341 } else { | 341 } else { |
| 342 if (m_style && ruleData.containsUncommonAttributeSelector()) | 342 if (m_style && ruleData.containsUncommonAttributeSelector()) |
| 343 m_style->setUnique(); | 343 m_style->setUnique(); |
| 344 | 344 |
| 345 m_matchedRules.append( | 345 m_matchedRules.push_back( |
| 346 MatchedRule(&ruleData, result.specificity, cascadeOrder, | 346 MatchedRule(&ruleData, result.specificity, cascadeOrder, |
| 347 matchRequest.styleSheetIndex, matchRequest.styleSheet)); | 347 matchRequest.styleSheetIndex, matchRequest.styleSheet)); |
| 348 } | 348 } |
| 349 } | 349 } |
| 350 | 350 |
| 351 static inline bool compareRules(const MatchedRule& matchedRule1, | 351 static inline bool compareRules(const MatchedRule& matchedRule1, |
| 352 const MatchedRule& matchedRule2) { | 352 const MatchedRule& matchedRule2) { |
| 353 unsigned specificity1 = matchedRule1.specificity(); | 353 unsigned specificity1 = matchedRule1.specificity(); |
| 354 unsigned specificity2 = matchedRule2.specificity(); | 354 unsigned specificity2 = matchedRule2.specificity(); |
| 355 if (specificity1 != specificity2) | 355 if (specificity1 != specificity2) |
| (...skipping 20 matching lines...) Expand all Loading... |
| 376 return !m_matchedRules.isEmpty(); | 376 return !m_matchedRules.isEmpty(); |
| 377 } | 377 } |
| 378 | 378 |
| 379 void ElementRuleCollector::addMatchedRulesToTracker( | 379 void ElementRuleCollector::addMatchedRulesToTracker( |
| 380 StyleRuleUsageTracker* tracker) const { | 380 StyleRuleUsageTracker* tracker) const { |
| 381 for (auto matchedRule : m_matchedRules) | 381 for (auto matchedRule : m_matchedRules) |
| 382 tracker->track(matchedRule.ruleData()->rule()); | 382 tracker->track(matchedRule.ruleData()->rule()); |
| 383 } | 383 } |
| 384 | 384 |
| 385 } // namespace blink | 385 } // namespace blink |
| OLD | NEW |