OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/animation/ColorPropertyFunctions.h" | 5 #include "core/animation/ColorPropertyFunctions.h" |
6 | 6 |
7 #include "core/style/ComputedStyle.h" | 7 #include "core/style/ComputedStyle.h" |
8 | 8 |
9 namespace blink { | 9 namespace blink { |
10 | 10 |
11 StyleColor ColorPropertyFunctions::getInitialColor(CSSPropertyID property) { | 11 bool ColorPropertyFunctions::getInitialColor(CSSPropertyID property, |
12 return getUnvisitedColor(property, ComputedStyle::initialStyle()); | 12 StyleColor& initialColor) { |
| 13 if (property == CSSPropertyCaretColor) |
| 14 return false; |
| 15 // TODO(rego): Make getUnvisitedColor() return a bool, so we don't need a |
| 16 // special case for caret-color here (http://crbug.com/676295). |
| 17 initialColor = getUnvisitedColor(property, ComputedStyle::initialStyle()); |
| 18 return true; |
13 } | 19 } |
14 | 20 |
15 StyleColor ColorPropertyFunctions::getUnvisitedColor( | 21 StyleColor ColorPropertyFunctions::getUnvisitedColor( |
16 CSSPropertyID property, | 22 CSSPropertyID property, |
17 const ComputedStyle& style) { | 23 const ComputedStyle& style) { |
18 switch (property) { | 24 switch (property) { |
19 case CSSPropertyBackgroundColor: | 25 case CSSPropertyBackgroundColor: |
20 return style.backgroundColor(); | 26 return style.backgroundColor(); |
21 case CSSPropertyBorderLeftColor: | 27 case CSSPropertyBorderLeftColor: |
22 return style.borderLeftColor(); | 28 return style.borderLeftColor(); |
23 case CSSPropertyBorderRightColor: | 29 case CSSPropertyBorderRightColor: |
24 return style.borderRightColor(); | 30 return style.borderRightColor(); |
25 case CSSPropertyBorderTopColor: | 31 case CSSPropertyBorderTopColor: |
26 return style.borderTopColor(); | 32 return style.borderTopColor(); |
27 case CSSPropertyBorderBottomColor: | 33 case CSSPropertyBorderBottomColor: |
28 return style.borderBottomColor(); | 34 return style.borderBottomColor(); |
| 35 case CSSPropertyCaretColor: |
| 36 // TODO(rego): "auto" value for caret-color should not interpolate |
| 37 // (http://crbug.com/676295). |
| 38 if (style.caretColor().isAutoColor()) |
| 39 return StyleColor::currentColor(); |
| 40 return style.caretColor().toStyleColor(); |
29 case CSSPropertyColor: | 41 case CSSPropertyColor: |
30 return style.color(); | 42 return style.color(); |
31 case CSSPropertyOutlineColor: | 43 case CSSPropertyOutlineColor: |
32 return style.outlineColor(); | 44 return style.outlineColor(); |
33 case CSSPropertyColumnRuleColor: | 45 case CSSPropertyColumnRuleColor: |
34 return style.columnRuleColor(); | 46 return style.columnRuleColor(); |
35 case CSSPropertyWebkitTextEmphasisColor: | 47 case CSSPropertyWebkitTextEmphasisColor: |
36 return style.textEmphasisColor(); | 48 return style.textEmphasisColor(); |
37 case CSSPropertyWebkitTextFillColor: | 49 case CSSPropertyWebkitTextFillColor: |
38 return style.textFillColor(); | 50 return style.textFillColor(); |
(...skipping 21 matching lines...) Expand all Loading... |
60 case CSSPropertyBackgroundColor: | 72 case CSSPropertyBackgroundColor: |
61 return style.visitedLinkBackgroundColor(); | 73 return style.visitedLinkBackgroundColor(); |
62 case CSSPropertyBorderLeftColor: | 74 case CSSPropertyBorderLeftColor: |
63 return style.visitedLinkBorderLeftColor(); | 75 return style.visitedLinkBorderLeftColor(); |
64 case CSSPropertyBorderRightColor: | 76 case CSSPropertyBorderRightColor: |
65 return style.visitedLinkBorderRightColor(); | 77 return style.visitedLinkBorderRightColor(); |
66 case CSSPropertyBorderTopColor: | 78 case CSSPropertyBorderTopColor: |
67 return style.visitedLinkBorderTopColor(); | 79 return style.visitedLinkBorderTopColor(); |
68 case CSSPropertyBorderBottomColor: | 80 case CSSPropertyBorderBottomColor: |
69 return style.visitedLinkBorderBottomColor(); | 81 return style.visitedLinkBorderBottomColor(); |
| 82 case CSSPropertyCaretColor: |
| 83 // TODO(rego): "auto" value for caret-color should not interpolate |
| 84 // (http://crbug.com/676295). |
| 85 if (style.visitedLinkCaretColor().isAutoColor()) |
| 86 return StyleColor::currentColor(); |
| 87 return style.visitedLinkCaretColor().toStyleColor(); |
70 case CSSPropertyColor: | 88 case CSSPropertyColor: |
71 return style.visitedLinkColor(); | 89 return style.visitedLinkColor(); |
72 case CSSPropertyOutlineColor: | 90 case CSSPropertyOutlineColor: |
73 return style.visitedLinkOutlineColor(); | 91 return style.visitedLinkOutlineColor(); |
74 case CSSPropertyColumnRuleColor: | 92 case CSSPropertyColumnRuleColor: |
75 return style.visitedLinkColumnRuleColor(); | 93 return style.visitedLinkColumnRuleColor(); |
76 case CSSPropertyWebkitTextEmphasisColor: | 94 case CSSPropertyWebkitTextEmphasisColor: |
77 return style.visitedLinkTextEmphasisColor(); | 95 return style.visitedLinkTextEmphasisColor(); |
78 case CSSPropertyWebkitTextFillColor: | 96 case CSSPropertyWebkitTextFillColor: |
79 return style.visitedLinkTextFillColor(); | 97 return style.visitedLinkTextFillColor(); |
(...skipping 27 matching lines...) Expand all Loading... |
107 return; | 125 return; |
108 case CSSPropertyBorderLeftColor: | 126 case CSSPropertyBorderLeftColor: |
109 style.setBorderLeftColor(color); | 127 style.setBorderLeftColor(color); |
110 return; | 128 return; |
111 case CSSPropertyBorderRightColor: | 129 case CSSPropertyBorderRightColor: |
112 style.setBorderRightColor(color); | 130 style.setBorderRightColor(color); |
113 return; | 131 return; |
114 case CSSPropertyBorderTopColor: | 132 case CSSPropertyBorderTopColor: |
115 style.setBorderTopColor(color); | 133 style.setBorderTopColor(color); |
116 return; | 134 return; |
| 135 case CSSPropertyCaretColor: |
| 136 return style.setCaretColor(color); |
117 case CSSPropertyColor: | 137 case CSSPropertyColor: |
118 style.setColor(color); | 138 style.setColor(color); |
119 return; | 139 return; |
120 case CSSPropertyFloodColor: | 140 case CSSPropertyFloodColor: |
121 style.setFloodColor(color); | 141 style.setFloodColor(color); |
122 return; | 142 return; |
123 case CSSPropertyLightingColor: | 143 case CSSPropertyLightingColor: |
124 style.setLightingColor(color); | 144 style.setLightingColor(color); |
125 return; | 145 return; |
126 case CSSPropertyOutlineColor: | 146 case CSSPropertyOutlineColor: |
(...skipping 29 matching lines...) Expand all Loading... |
156 return; | 176 return; |
157 case CSSPropertyBorderLeftColor: | 177 case CSSPropertyBorderLeftColor: |
158 style.setVisitedLinkBorderLeftColor(color); | 178 style.setVisitedLinkBorderLeftColor(color); |
159 return; | 179 return; |
160 case CSSPropertyBorderRightColor: | 180 case CSSPropertyBorderRightColor: |
161 style.setVisitedLinkBorderRightColor(color); | 181 style.setVisitedLinkBorderRightColor(color); |
162 return; | 182 return; |
163 case CSSPropertyBorderTopColor: | 183 case CSSPropertyBorderTopColor: |
164 style.setVisitedLinkBorderTopColor(color); | 184 style.setVisitedLinkBorderTopColor(color); |
165 return; | 185 return; |
| 186 case CSSPropertyCaretColor: |
| 187 return style.setVisitedLinkCaretColor(color); |
166 case CSSPropertyColor: | 188 case CSSPropertyColor: |
167 style.setVisitedLinkColor(color); | 189 style.setVisitedLinkColor(color); |
168 return; | 190 return; |
169 case CSSPropertyFloodColor: | 191 case CSSPropertyFloodColor: |
170 style.setFloodColor(color); | 192 style.setFloodColor(color); |
171 return; | 193 return; |
172 case CSSPropertyLightingColor: | 194 case CSSPropertyLightingColor: |
173 style.setLightingColor(color); | 195 style.setLightingColor(color); |
174 return; | 196 return; |
175 case CSSPropertyOutlineColor: | 197 case CSSPropertyOutlineColor: |
(...skipping 11 matching lines...) Expand all Loading... |
187 case CSSPropertyWebkitTextStrokeColor: | 209 case CSSPropertyWebkitTextStrokeColor: |
188 style.setVisitedLinkTextStrokeColor(color); | 210 style.setVisitedLinkTextStrokeColor(color); |
189 return; | 211 return; |
190 default: | 212 default: |
191 NOTREACHED(); | 213 NOTREACHED(); |
192 return; | 214 return; |
193 } | 215 } |
194 } | 216 } |
195 | 217 |
196 } // namespace blink | 218 } // namespace blink |
OLD | NEW |