| 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 396 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   407     } |   407     } | 
|   408  |   408  | 
|   409     treeScope = treeScope->parentTreeScope(); |   409     treeScope = treeScope->parentTreeScope(); | 
|   410     if (!treeScope) |   410     if (!treeScope) | 
|   411         return nullptr; |   411         return nullptr; | 
|   412     if (element->shadowPseudoId().isEmpty() && !element->isVTTElement()) |   412     if (element->shadowPseudoId().isEmpty() && !element->isVTTElement()) | 
|   413         return nullptr; |   413         return nullptr; | 
|   414     return treeScope->scopedStyleResolver(); |   414     return treeScope->scopedStyleResolver(); | 
|   415 } |   415 } | 
|   416  |   416  | 
|   417 void StyleResolver::matchAuthorRulesForShadowHost(Element* element, ElementRuleC
      ollector& collector, bool includeEmptyRules, WillBeHeapVector<RawPtrWillBeMember
      <ScopedStyleResolver>, 8>& resolversInShadowTree) |  | 
|   418 { |  | 
|   419     CascadeOrder cascadeOrder = 0; |  | 
|   420     for (int j = resolversInShadowTree.size() - 1; j >= 0; --j) |  | 
|   421         resolversInShadowTree.at(j)->collectMatchingShadowHostRules(collector, i
      ncludeEmptyRules, cascadeOrder++); |  | 
|   422  |  | 
|   423     if (ScopedStyleResolver* resolver = scopedResolverFor(element)) |  | 
|   424         resolver->collectMatchingAuthorRules(collector, includeEmptyRules, casca
      deOrder); |  | 
|   425 } |  | 
|   426  |  | 
|   427 void StyleResolver::matchAuthorRules(Element* element, ElementRuleCollector& col
      lector, bool includeEmptyRules) |   417 void StyleResolver::matchAuthorRules(Element* element, ElementRuleCollector& col
      lector, bool includeEmptyRules) | 
|   428 { |   418 { | 
|   429     collector.clearMatchedRules(); |   419     collector.clearMatchedRules(); | 
|   430     collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
      matchedProperties.size() - 1; |   420     collector.matchedResult().ranges.lastAuthorRule = collector.matchedResult().
      matchedProperties.size() - 1; | 
|   431  |   421  | 
|   432     if (document().styleEngine()->onlyDocumentHasStyles()) { |   422     CascadeOrder cascadeOrder = 0; | 
|   433         ScopedStyleResolver* resolver = document().scopedStyleResolver(); |  | 
|   434         // If we have no resolver for a document, the document has no styles. |  | 
|   435         // We don't need to see any rules (including treeboundary crossing ones)
      . |  | 
|   436         if (!resolver) |  | 
|   437             return; |  | 
|   438         resolver->collectMatchingAuthorRules(collector, includeEmptyRules); |  | 
|   439         m_treeBoundaryCrossingRules.collectTreeBoundaryCrossingRules(element, co
      llector, includeEmptyRules); |  | 
|   440         collector.sortAndTransferMatchedRules(); |  | 
|   441         return; |  | 
|   442     } |  | 
|   443  |  | 
|   444     WillBeHeapVector<RawPtrWillBeMember<ScopedStyleResolver>, 8> resolversInShad
      owTree; |   423     WillBeHeapVector<RawPtrWillBeMember<ScopedStyleResolver>, 8> resolversInShad
      owTree; | 
|   445     collectScopedResolversForHostedShadowTrees(element, resolversInShadowTree); |   424     collectScopedResolversForHostedShadowTrees(element, resolversInShadowTree); | 
|   446     if (!resolversInShadowTree.isEmpty()) |  | 
|   447         matchAuthorRulesForShadowHost(element, collector, includeEmptyRules, res
      olversInShadowTree); |  | 
|   448     else if (ScopedStyleResolver* resolver = scopedResolverFor(element)) |  | 
|   449         resolver->collectMatchingAuthorRules(collector, includeEmptyRules, resol
      ver->treeScope().rootNode().isShadowRoot() ? 0 : 1); |  | 
|   450  |   425  | 
 |   426     // Apply :host and :host-context rules from inner scopes. | 
 |   427     for (int j = resolversInShadowTree.size() - 1; j >= 0; --j) | 
 |   428         resolversInShadowTree.at(j)->collectMatchingShadowHostRules(collector, i
      ncludeEmptyRules, ++cascadeOrder); | 
 |   429  | 
 |   430     // Apply normal rules from element scope. | 
 |   431     if (ScopedStyleResolver* resolver = scopedResolverFor(element)) | 
 |   432         resolver->collectMatchingAuthorRules(collector, includeEmptyRules, ++cas
      cadeOrder); | 
 |   433  | 
 |   434     // Apply /deep/ and ::shadow rules from outer scopes, and ::content from inn
      er. | 
|   451     m_treeBoundaryCrossingRules.collectTreeBoundaryCrossingRules(element, collec
      tor, includeEmptyRules); |   435     m_treeBoundaryCrossingRules.collectTreeBoundaryCrossingRules(element, collec
      tor, includeEmptyRules); | 
|   452     collector.sortAndTransferMatchedRules(); |   436     collector.sortAndTransferMatchedRules(); | 
|   453 } |   437 } | 
|   454  |   438  | 
|   455 void StyleResolver::matchUARules(ElementRuleCollector& collector) |   439 void StyleResolver::matchUARules(ElementRuleCollector& collector) | 
|   456 { |   440 { | 
|   457     collector.setMatchingUARules(true); |   441     collector.setMatchingUARules(true); | 
|   458  |   442  | 
|   459     CSSDefaultStyleSheets& defaultStyleSheets = CSSDefaultStyleSheets::instance(
      ); |   443     CSSDefaultStyleSheets& defaultStyleSheets = CSSDefaultStyleSheets::instance(
      ); | 
|   460     RuleSet* userAgentStyleSheet = m_printMediaType ? defaultStyleSheets.default
      PrintStyle() : defaultStyleSheets.defaultStyle(); |   444     RuleSet* userAgentStyleSheet = m_printMediaType ? defaultStyleSheets.default
      PrintStyle() : defaultStyleSheets.defaultStyle(); | 
| (...skipping 1128 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1589     visitor->trace(m_uncommonAttributeRuleSet); |  1573     visitor->trace(m_uncommonAttributeRuleSet); | 
|  1590     visitor->trace(m_watchedSelectorsRules); |  1574     visitor->trace(m_watchedSelectorsRules); | 
|  1591     visitor->trace(m_treeBoundaryCrossingRules); |  1575     visitor->trace(m_treeBoundaryCrossingRules); | 
|  1592     visitor->trace(m_styleSharingLists); |  1576     visitor->trace(m_styleSharingLists); | 
|  1593     visitor->trace(m_pendingStyleSheets); |  1577     visitor->trace(m_pendingStyleSheets); | 
|  1594     visitor->trace(m_document); |  1578     visitor->trace(m_document); | 
|  1595 #endif |  1579 #endif | 
|  1596 } |  1580 } | 
|  1597  |  1581  | 
|  1598 } // namespace blink |  1582 } // namespace blink | 
| OLD | NEW |