Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp

Issue 2361733004: Adding @keyframes rules only affects TreeScope plus host. (Closed)
Patch Set: Moved scope check to CSSAnimations Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 1141 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 return true; 1152 return true;
1153 } 1153 }
1154 1154
1155 StyleRuleKeyframes* StyleResolver::findKeyframesRule(const Element* element, con st AtomicString& animationName) 1155 StyleRuleKeyframes* StyleResolver::findKeyframesRule(const Element* element, con st AtomicString& animationName)
1156 { 1156 {
1157 HeapVector<Member<ScopedStyleResolver>, 8> resolvers; 1157 HeapVector<Member<ScopedStyleResolver>, 8> resolvers;
1158 collectScopedResolversForHostedShadowTrees(*element, resolvers); 1158 collectScopedResolversForHostedShadowTrees(*element, resolvers);
1159 if (ScopedStyleResolver* scopedResolver = element->treeScope().scopedStyleRe solver()) 1159 if (ScopedStyleResolver* scopedResolver = element->treeScope().scopedStyleRe solver())
1160 resolvers.append(scopedResolver); 1160 resolvers.append(scopedResolver);
1161 1161
1162 for (size_t i = 0; i < resolvers.size(); ++i) { 1162 for (auto& resolver : resolvers) {
1163 if (StyleRuleKeyframes* keyframesRule = resolvers[i]->keyframeStylesForA nimation(animationName.impl())) 1163 if (StyleRuleKeyframes* keyframesRule = resolver->keyframeStylesForAnima tion(animationName.impl()))
1164 return keyframesRule; 1164 return keyframesRule;
1165 } 1165 }
1166
1167 for (auto& resolver : resolvers)
1168 resolver->setHasUnresolvedKeyframesRule();
1166 return nullptr; 1169 return nullptr;
1167 } 1170 }
1168 1171
1169 template <CSSPropertyPriority priority> 1172 template <CSSPropertyPriority priority>
1170 void StyleResolver::applyAnimatedProperties(StyleResolverState& state, const Act iveInterpolationsMap& activeInterpolationsMap) 1173 void StyleResolver::applyAnimatedProperties(StyleResolverState& state, const Act iveInterpolationsMap& activeInterpolationsMap)
1171 { 1174 {
1172 // TODO(alancutter): Don't apply presentation attribute animations here, 1175 // TODO(alancutter): Don't apply presentation attribute animations here,
1173 // they should instead apply in SVGElement::collectStyleForPresentationAttri bute(). 1176 // they should instead apply in SVGElement::collectStyleForPresentationAttri bute().
1174 for (const auto& entry : activeInterpolationsMap) { 1177 for (const auto& entry : activeInterpolationsMap) {
1175 CSSPropertyID property = entry.key.isCSSProperty() ? entry.key.cssProper ty() : entry.key.presentationAttribute(); 1178 CSSPropertyID property = entry.key.isCSSProperty() ? entry.key.cssProper ty() : entry.key.presentationAttribute();
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
1743 visitor->trace(m_siblingRuleSet); 1746 visitor->trace(m_siblingRuleSet);
1744 visitor->trace(m_uncommonAttributeRuleSet); 1747 visitor->trace(m_uncommonAttributeRuleSet);
1745 visitor->trace(m_watchedSelectorsRules); 1748 visitor->trace(m_watchedSelectorsRules);
1746 visitor->trace(m_treeBoundaryCrossingScopes); 1749 visitor->trace(m_treeBoundaryCrossingScopes);
1747 visitor->trace(m_styleSharingLists); 1750 visitor->trace(m_styleSharingLists);
1748 visitor->trace(m_pendingStyleSheets); 1751 visitor->trace(m_pendingStyleSheets);
1749 visitor->trace(m_document); 1752 visitor->trace(m_document);
1750 } 1753 }
1751 1754
1752 } // namespace blink 1755 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/resolver/ScopedStyleResolver.cpp ('k') | third_party/WebKit/Source/core/dom/StyleEngine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698