Index: Source/core/css/resolver/ScopedStyleResolver.cpp |
diff --git a/Source/core/css/resolver/ScopedStyleResolver.cpp b/Source/core/css/resolver/ScopedStyleResolver.cpp |
index 23f84234d924a71a3d85b168abef371d640d784e..261d45818bf572f1b9e2a3d52c0fb20d4156c60a 100644 |
--- a/Source/core/css/resolver/ScopedStyleResolver.cpp |
+++ b/Source/core/css/resolver/ScopedStyleResolver.cpp |
@@ -335,7 +335,15 @@ const StyleRuleKeyframes* ScopedStyleResolver::keyframeStylesForAnimation(const |
void ScopedStyleResolver::addKeyframeStyle(PassRefPtr<StyleRuleKeyframes> rule) |
{ |
AtomicString s(rule->name()); |
- m_keyframesRuleMap.set(s.impl(), rule); |
+ if (rule->isVendorPrefixed()) { |
+ KeyframesRuleMap::iterator it = m_keyframesRuleMap.find(rule->name().impl()); |
+ if (it == m_keyframesRuleMap.end()) |
+ m_keyframesRuleMap.set(s.impl(), rule); |
+ else if (it->value->isVendorPrefixed()) |
+ m_keyframesRuleMap.set(s.impl(), rule); |
+ } else { |
+ m_keyframesRuleMap.set(s.impl(), rule); |
+ } |
} |
inline RuleSet* ScopedStyleResolver::atHostRuleSetFor(const ShadowRoot* shadowRoot) const |