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

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

Issue 15923002: Move CSSOM classes to using MutableStylePropertySet over StylePropertySet. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/css/PropertySetCSSStyleDeclaration.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 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 16 matching lines...) Expand all
27 #define PropertySetCSSStyleDeclaration_h 27 #define PropertySetCSSStyleDeclaration_h
28 28
29 #include "core/css/CSSStyleDeclaration.h" 29 #include "core/css/CSSStyleDeclaration.h"
30 #include <wtf/HashMap.h> 30 #include <wtf/HashMap.h>
31 31
32 namespace WebCore { 32 namespace WebCore {
33 33
34 class CSSRule; 34 class CSSRule;
35 class CSSProperty; 35 class CSSProperty;
36 class CSSValue; 36 class CSSValue;
37 class StylePropertySet; 37 class MutableStylePropertySet;
38 class StyleSheetContents; 38 class StyleSheetContents;
39 class StyledElement; 39 class StyledElement;
40 40
41 class PropertySetCSSStyleDeclaration : public CSSStyleDeclaration { 41 class PropertySetCSSStyleDeclaration : public CSSStyleDeclaration {
42 public: 42 public:
43 PropertySetCSSStyleDeclaration(StylePropertySet* propertySet) : m_propertySe t(propertySet) { } 43 PropertySetCSSStyleDeclaration(MutableStylePropertySet* propertySet) : m_pro pertySet(propertySet) { }
44 44
45 virtual StyledElement* parentElement() const { return 0; } 45 virtual StyledElement* parentElement() const { return 0; }
46 virtual void clearParentElement() { ASSERT_NOT_REACHED(); } 46 virtual void clearParentElement() { ASSERT_NOT_REACHED(); }
47 StyleSheetContents* contextStyleSheet() const; 47 StyleSheetContents* contextStyleSheet() const;
48 48
49 virtual void ref() OVERRIDE; 49 virtual void ref() OVERRIDE;
50 virtual void deref() OVERRIDE; 50 virtual void deref() OVERRIDE;
51 51
52 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE; 52 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
53 53
(...skipping 17 matching lines...) Expand all
71 virtual bool cssPropertyMatches(CSSPropertyID, const CSSValue*) const OVERRI DE; 71 virtual bool cssPropertyMatches(CSSPropertyID, const CSSValue*) const OVERRI DE;
72 virtual PassRefPtr<MutableStylePropertySet> copyProperties() const OVERRIDE; 72 virtual PassRefPtr<MutableStylePropertySet> copyProperties() const OVERRIDE;
73 73
74 CSSValue* cloneAndCacheForCSSOM(CSSValue*); 74 CSSValue* cloneAndCacheForCSSOM(CSSValue*);
75 75
76 protected: 76 protected:
77 enum MutationType { NoChanges, PropertyChanged }; 77 enum MutationType { NoChanges, PropertyChanged };
78 virtual void willMutate() { } 78 virtual void willMutate() { }
79 virtual void didMutate(MutationType) { } 79 virtual void didMutate(MutationType) { }
80 80
81 StylePropertySet* m_propertySet; 81 MutableStylePropertySet* m_propertySet;
82 OwnPtr<HashMap<CSSValue*, RefPtr<CSSValue> > > m_cssomCSSValueClones; 82 OwnPtr<HashMap<CSSValue*, RefPtr<CSSValue> > > m_cssomCSSValueClones;
83 }; 83 };
84 84
85 class StyleRuleCSSStyleDeclaration : public PropertySetCSSStyleDeclaration 85 class StyleRuleCSSStyleDeclaration : public PropertySetCSSStyleDeclaration
86 { 86 {
87 public: 87 public:
88 static PassRefPtr<StyleRuleCSSStyleDeclaration> create(StylePropertySet* pro pertySet, CSSRule* parentRule) 88 static PassRefPtr<StyleRuleCSSStyleDeclaration> create(MutableStylePropertyS et* propertySet, CSSRule* parentRule)
89 { 89 {
90 return adoptRef(new StyleRuleCSSStyleDeclaration(propertySet, parentRule )); 90 return adoptRef(new StyleRuleCSSStyleDeclaration(propertySet, parentRule ));
91 } 91 }
92 92
93 void clearParentRule() { m_parentRule = 0; } 93 void clearParentRule() { m_parentRule = 0; }
94 94
95 virtual void ref() OVERRIDE; 95 virtual void ref() OVERRIDE;
96 virtual void deref() OVERRIDE; 96 virtual void deref() OVERRIDE;
97 97
98 void reattach(StylePropertySet*); 98 void reattach(MutableStylePropertySet*);
99 99
100 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE; 100 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
101 101
102 private: 102 private:
103 StyleRuleCSSStyleDeclaration(StylePropertySet*, CSSRule*); 103 StyleRuleCSSStyleDeclaration(MutableStylePropertySet*, CSSRule*);
104 virtual ~StyleRuleCSSStyleDeclaration(); 104 virtual ~StyleRuleCSSStyleDeclaration();
105 105
106 virtual CSSStyleSheet* parentStyleSheet() const OVERRIDE; 106 virtual CSSStyleSheet* parentStyleSheet() const OVERRIDE;
107 107
108 virtual CSSRule* parentRule() const OVERRIDE { return m_parentRule; } 108 virtual CSSRule* parentRule() const OVERRIDE { return m_parentRule; }
109 109
110 virtual void willMutate() OVERRIDE; 110 virtual void willMutate() OVERRIDE;
111 virtual void didMutate(MutationType) OVERRIDE; 111 virtual void didMutate(MutationType) OVERRIDE;
112 112
113 unsigned m_refCount; 113 unsigned m_refCount;
114 CSSRule* m_parentRule; 114 CSSRule* m_parentRule;
115 }; 115 };
116 116
117 class InlineCSSStyleDeclaration : public PropertySetCSSStyleDeclaration 117 class InlineCSSStyleDeclaration : public PropertySetCSSStyleDeclaration
118 { 118 {
119 public: 119 public:
120 InlineCSSStyleDeclaration(StylePropertySet* propertySet, StyledElement* pare ntElement) 120 InlineCSSStyleDeclaration(MutableStylePropertySet* propertySet, StyledElemen t* parentElement)
121 : PropertySetCSSStyleDeclaration(propertySet) 121 : PropertySetCSSStyleDeclaration(propertySet)
122 , m_parentElement(parentElement) 122 , m_parentElement(parentElement)
123 { 123 {
124 } 124 }
125 125
126 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE; 126 virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
127 127
128 private: 128 private:
129 virtual CSSStyleSheet* parentStyleSheet() const OVERRIDE; 129 virtual CSSStyleSheet* parentStyleSheet() const OVERRIDE;
130 virtual StyledElement* parentElement() const OVERRIDE { return m_parentEleme nt; } 130 virtual StyledElement* parentElement() const OVERRIDE { return m_parentEleme nt; }
131 virtual void clearParentElement() OVERRIDE { m_parentElement = 0; } 131 virtual void clearParentElement() OVERRIDE { m_parentElement = 0; }
132 132
133 virtual void didMutate(MutationType) OVERRIDE; 133 virtual void didMutate(MutationType) OVERRIDE;
134 134
135 StyledElement* m_parentElement; 135 StyledElement* m_parentElement;
136 }; 136 };
137 137
138 } // namespace WebCore 138 } // namespace WebCore
139 139
140 #endif 140 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/core/css/PropertySetCSSStyleDeclaration.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698