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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 break; | 131 break; |
132 } | 132 } |
133 } | 133 } |
134 | 134 |
135 void ScopedStyleTree::resolveScopedKeyframesRules(const Element* element, Vector
<ScopedStyleResolver*, 8>& resolvers) | 135 void ScopedStyleTree::resolveScopedKeyframesRules(const Element* element, Vector
<ScopedStyleResolver*, 8>& resolvers) |
136 { | 136 { |
137 Document& document = element->document(); | 137 Document& document = element->document(); |
138 TreeScope& treeScope = element->treeScope(); | 138 TreeScope& treeScope = element->treeScope(); |
139 bool applyAuthorStyles = treeScope.applyAuthorStyles(); | 139 bool applyAuthorStyles = treeScope.applyAuthorStyles(); |
140 | 140 |
| 141 // Add resolvers for shadow roots hosted by the given element. |
| 142 collectScopedResolversForHostedShadowTrees(element, resolvers); |
| 143 |
| 144 // Add resolvers while walking up DOM tree from the given element. |
141 for (ScopedStyleResolver* scopedResolver = scopedResolverFor(element); scope
dResolver; scopedResolver = scopedResolver->parent()) { | 145 for (ScopedStyleResolver* scopedResolver = scopedResolverFor(element); scope
dResolver; scopedResolver = scopedResolver->parent()) { |
142 if (scopedResolver->treeScope() == treeScope || (applyAuthorStyles && sc
opedResolver->treeScope() == document)) | 146 if (scopedResolver->treeScope() == treeScope || (applyAuthorStyles && sc
opedResolver->treeScope() == document)) |
143 resolvers.append(scopedResolver); | 147 resolvers.append(scopedResolver); |
144 } | 148 } |
145 } | 149 } |
146 | 150 |
147 inline ScopedStyleResolver* ScopedStyleTree::enclosingScopedStyleResolverFor(con
st ContainerNode* scopingNode) | 151 inline ScopedStyleResolver* ScopedStyleTree::enclosingScopedStyleResolverFor(con
st ContainerNode* scopingNode) |
148 { | 152 { |
149 for (; scopingNode; scopingNode = scopingNode->parentOrShadowHostNode()) { | 153 for (; scopingNode; scopingNode = scopingNode->parentOrShadowHostNode()) { |
150 if (ScopedStyleResolver* scopedStyleResolver = scopedStyleResolverFor(*s
copingNode)) | 154 if (ScopedStyleResolver* scopedStyleResolver = scopedStyleResolverFor(*s
copingNode)) |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 return; | 214 return; |
211 | 215 |
212 reparentNodes(resolverRemoved, resolverRemoved->parent()); | 216 reparentNodes(resolverRemoved, resolverRemoved->parent()); |
213 if (m_cache.scopedResolver == resolverRemoved) | 217 if (m_cache.scopedResolver == resolverRemoved) |
214 m_cache.clear(); | 218 m_cache.clear(); |
215 | 219 |
216 m_authorStyles.remove(scopingNode); | 220 m_authorStyles.remove(scopingNode); |
217 } | 221 } |
218 | 222 |
219 } // namespace WebCore | 223 } // namespace WebCore |
OLD | NEW |