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

Side by Side Diff: Source/core/css/CSSKeyframesRule.h

Issue 814083003: Update animation when changes in animation keyframes are detected. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase and address comments Created 5 years, 10 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) 2007, 2008, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 bool isVendorPrefixed() const { return m_isPrefixed; } 55 bool isVendorPrefixed() const { return m_isPrefixed; }
56 void setVendorPrefixed(bool isPrefixed) { m_isPrefixed = isPrefixed; } 56 void setVendorPrefixed(bool isPrefixed) { m_isPrefixed = isPrefixed; }
57 57
58 int findKeyframeIndex(const String& key) const; 58 int findKeyframeIndex(const String& key) const;
59 59
60 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> copy() const { return adoptRefWil lBeNoop(new StyleRuleKeyframes(*this)); } 60 PassRefPtrWillBeRawPtr<StyleRuleKeyframes> copy() const { return adoptRefWil lBeNoop(new StyleRuleKeyframes(*this)); }
61 61
62 void traceAfterDispatch(Visitor*); 62 void traceAfterDispatch(Visitor*);
63 63
64 void styleChanged() { m_version++; }
65 unsigned version() const { return m_version; }
66
64 private: 67 private:
65 StyleRuleKeyframes(); 68 StyleRuleKeyframes();
66 explicit StyleRuleKeyframes(const StyleRuleKeyframes&); 69 explicit StyleRuleKeyframes(const StyleRuleKeyframes&);
67 70
68 WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe> > m_keyframes; 71 WillBeHeapVector<RefPtrWillBeMember<StyleRuleKeyframe> > m_keyframes;
69 AtomicString m_name; 72 AtomicString m_name;
70 bool m_isPrefixed; 73 unsigned m_version : 31;
74 unsigned m_isPrefixed : 1;
71 }; 75 };
72 76
73 DEFINE_STYLE_RULE_TYPE_CASTS(Keyframes); 77 DEFINE_STYLE_RULE_TYPE_CASTS(Keyframes);
74 78
75 class CSSKeyframesRule final : public CSSRule { 79 class CSSKeyframesRule final : public CSSRule {
76 DEFINE_WRAPPERTYPEINFO(); 80 DEFINE_WRAPPERTYPEINFO();
77 public: 81 public:
78 static PassRefPtrWillBeRawPtr<CSSKeyframesRule> create(StyleRuleKeyframes* r ule, CSSStyleSheet* sheet) 82 static PassRefPtrWillBeRawPtr<CSSKeyframesRule> create(StyleRuleKeyframes* r ule, CSSStyleSheet* sheet)
79 { 83 {
80 return adoptRefWillBeNoop(new CSSKeyframesRule(rule, sheet)); 84 return adoptRefWillBeNoop(new CSSKeyframesRule(rule, sheet));
(...skipping 13 matching lines...) Expand all
94 void deleteRule(const String& key); 98 void deleteRule(const String& key);
95 CSSKeyframeRule* findRule(const String& key); 99 CSSKeyframeRule* findRule(const String& key);
96 100
97 // For IndexedGetter and CSSRuleList. 101 // For IndexedGetter and CSSRuleList.
98 unsigned length() const; 102 unsigned length() const;
99 CSSKeyframeRule* item(unsigned index) const; 103 CSSKeyframeRule* item(unsigned index) const;
100 104
101 bool isVendorPrefixed() const { return m_isPrefixed; } 105 bool isVendorPrefixed() const { return m_isPrefixed; }
102 void setVendorPrefixed(bool isPrefixed) { m_isPrefixed = isPrefixed; } 106 void setVendorPrefixed(bool isPrefixed) { m_isPrefixed = isPrefixed; }
103 107
108 void styleChanged() { m_keyframesRule->styleChanged(); }
109
104 virtual void trace(Visitor*) override; 110 virtual void trace(Visitor*) override;
105 111
106 private: 112 private:
107 CSSKeyframesRule(StyleRuleKeyframes*, CSSStyleSheet* parent); 113 CSSKeyframesRule(StyleRuleKeyframes*, CSSStyleSheet* parent);
108 114
109 virtual CSSRule::Type type() const override { return KEYFRAMES_RULE; } 115 virtual CSSRule::Type type() const override { return KEYFRAMES_RULE; }
110 116
111 RefPtrWillBeMember<StyleRuleKeyframes> m_keyframesRule; 117 RefPtrWillBeMember<StyleRuleKeyframes> m_keyframesRule;
112 mutable WillBeHeapVector<RefPtrWillBeMember<CSSKeyframeRule> > m_childRuleCS SOMWrappers; 118 mutable WillBeHeapVector<RefPtrWillBeMember<CSSKeyframeRule> > m_childRuleCS SOMWrappers;
113 mutable OwnPtrWillBeMember<CSSRuleList> m_ruleListCSSOMWrapper; 119 mutable OwnPtrWillBeMember<CSSRuleList> m_ruleListCSSOMWrapper;
114 bool m_isPrefixed; 120 bool m_isPrefixed;
115 }; 121 };
116 122
117 DEFINE_CSS_RULE_TYPE_CASTS(CSSKeyframesRule, KEYFRAMES_RULE); 123 DEFINE_CSS_RULE_TYPE_CASTS(CSSKeyframesRule, KEYFRAMES_RULE);
118 124
119 } // namespace blink 125 } // namespace blink
120 126
121 #endif // CSSKeyframesRule_h 127 #endif // CSSKeyframesRule_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698