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

Side by Side Diff: Source/core/css/SVGCSSComputedStyleDeclaration.cpp

Issue 361543002: Remove SVGPaint (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Patch for landing Created 6 years, 5 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
« no previous file with comments | « Source/core/css/CSSValue.cpp ('k') | Source/core/css/parser/BisonCSSParser.h » ('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) 2007 Eric Seidel <eric@webkit.org> 2 Copyright (C) 2007 Eric Seidel <eric@webkit.org>
3 Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> 3 Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org>
4 4
5 This library is free software; you can redistribute it and/or 5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public 6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version. 8 version 2 of the License, or (at your option) any later version.
9 9
10 This library is distributed in the hope that it will be useful, 10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details. 13 Library General Public License for more details.
14 14
15 You should have received a copy of the GNU Library General Public License 15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to 16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA. 18 Boston, MA 02110-1301, USA.
19 */ 19 */
20 20
21 #include "config.h" 21 #include "config.h"
22 22
23 #include "core/css/CSSComputedStyleDeclaration.h" 23 #include "core/css/CSSComputedStyleDeclaration.h"
24 24
25 #include "core/CSSPropertyNames.h" 25 #include "core/CSSPropertyNames.h"
26 #include "core/css/CSSPrimitiveValueMappings.h" 26 #include "core/css/CSSPrimitiveValueMappings.h"
27 #include "core/dom/Document.h" 27 #include "core/dom/Document.h"
28 #include "core/rendering/style/RenderStyle.h" 28 #include "core/rendering/style/RenderStyle.h"
29 #include "core/svg/SVGPaint.h"
30 29
31 namespace WebCore { 30 namespace WebCore {
32 31
33 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> glyphOrientationToCSSPrimitiveV alue(EGlyphOrientation orientation) 32 static PassRefPtrWillBeRawPtr<CSSPrimitiveValue> glyphOrientationToCSSPrimitiveV alue(EGlyphOrientation orientation)
34 { 33 {
35 switch (orientation) { 34 switch (orientation) {
36 case GO_0DEG: 35 case GO_0DEG:
37 return CSSPrimitiveValue::create(0.0f, CSSPrimitiveValue::CSS_DEG); 36 return CSSPrimitiveValue::create(0.0f, CSSPrimitiveValue::CSS_DEG);
38 case GO_90DEG: 37 case GO_90DEG:
39 return CSSPrimitiveValue::create(90.0f, CSSPrimitiveValue::CSS_DEG); 38 return CSSPrimitiveValue::create(90.0f, CSSPrimitiveValue::CSS_DEG);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 case PT_NONE: 75 case PT_NONE:
77 default: 76 default:
78 ASSERT_NOT_REACHED(); 77 ASSERT_NOT_REACHED();
79 break; 78 break;
80 } 79 }
81 } while (paintorder >>= kPaintOrderBitwidth); 80 } while (paintorder >>= kPaintOrderBitwidth);
82 81
83 return list.release(); 82 return list.release();
84 } 83 }
85 84
86 PassRefPtrWillBeRawPtr<SVGPaint> CSSComputedStyleDeclaration::adjustSVGPaintForC urrentColor(PassRefPtrWillBeRawPtr<SVGPaint> newPaint, RenderStyle& style) const 85 static PassRefPtrWillBeRawPtr<CSSValue> adjustSVGPaintForCurrentColor(SVGPaintTy pe paintType, const String& url, const Color& color, const Color& currentColor)
87 { 86 {
88 RefPtrWillBeRawPtr<SVGPaint> paint = newPaint; 87 if (paintType >= SVG_PAINTTYPE_URI_NONE) {
89 if (paint->paintType() == SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR || paint->pai ntType() == SVGPaint::SVG_PAINTTYPE_URI_CURRENTCOLOR) 88 RefPtrWillBeRawPtr<CSSValueList> values = CSSValueList::createSpaceSepar ated();
90 paint->setColor(style.color()); 89 values->append(CSSPrimitiveValue::create(url, CSSPrimitiveValue::CSS_URI ));
91 return paint.release(); 90 if (paintType == SVG_PAINTTYPE_URI_NONE)
91 values->append(CSSPrimitiveValue::create(CSSValueNone));
92 else if (paintType == SVG_PAINTTYPE_URI_CURRENTCOLOR)
93 values->append(CSSPrimitiveValue::createColor(currentColor.rgb()));
94 else if (paintType == SVG_PAINTTYPE_URI_RGBCOLOR)
95 values->append(CSSPrimitiveValue::createColor(color.rgb()));
96 return values.release();
97 }
98 if (paintType == SVG_PAINTTYPE_NONE)
99 return CSSPrimitiveValue::create(CSSValueNone);
100 if (paintType == SVG_PAINTTYPE_CURRENTCOLOR)
101 return CSSPrimitiveValue::createColor(currentColor.rgb());
102
103 return CSSPrimitiveValue::createColor(color.rgb());
92 } 104 }
93 105
94 static inline String serializeAsFragmentIdentifier(const AtomicString& resource) 106 static inline String serializeAsFragmentIdentifier(const AtomicString& resource)
95 { 107 {
96 return "#" + resource; 108 return "#" + resource;
97 } 109 }
98 110
99 PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSV alue(CSSPropertyID propertyID, EUpdateLayout updateLayout) const 111 PassRefPtrWillBeRawPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSV alue(CSSPropertyID propertyID, EUpdateLayout updateLayout) const
100 { 112 {
101 Node* node = m_node.get(); 113 Node* node = m_node.get();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 if (!svgStyle->filterResource().isEmpty()) 173 if (!svgStyle->filterResource().isEmpty())
162 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->filterResource()), CSSPrimitiveValue::CSS_URI); 174 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->filterResource()), CSSPrimitiveValue::CSS_URI);
163 return CSSPrimitiveValue::createIdentifier(CSSValueNone); 175 return CSSPrimitiveValue::createIdentifier(CSSValueNone);
164 case CSSPropertyFloodColor: 176 case CSSPropertyFloodColor:
165 return currentColorOrValidColor(*style, svgStyle->floodColor()); 177 return currentColorOrValidColor(*style, svgStyle->floodColor());
166 case CSSPropertyLightingColor: 178 case CSSPropertyLightingColor:
167 return currentColorOrValidColor(*style, svgStyle->lightingColor()); 179 return currentColorOrValidColor(*style, svgStyle->lightingColor());
168 case CSSPropertyStopColor: 180 case CSSPropertyStopColor:
169 return currentColorOrValidColor(*style, svgStyle->stopColor()); 181 return currentColorOrValidColor(*style, svgStyle->stopColor());
170 case CSSPropertyFill: 182 case CSSPropertyFill:
171 return adjustSVGPaintForCurrentColor(SVGPaint::create(svgStyle->fill PaintType(), svgStyle->fillPaintUri(), svgStyle->fillPaintColor()), *style); 183 return adjustSVGPaintForCurrentColor(svgStyle->fillPaintType(), svgS tyle->fillPaintUri(), svgStyle->fillPaintColor(), style->color());
172 case CSSPropertyMarkerEnd: 184 case CSSPropertyMarkerEnd:
173 if (!svgStyle->markerEndResource().isEmpty()) 185 if (!svgStyle->markerEndResource().isEmpty())
174 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->markerEndResource()), CSSPrimitiveValue::CSS_URI); 186 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->markerEndResource()), CSSPrimitiveValue::CSS_URI);
175 return CSSPrimitiveValue::createIdentifier(CSSValueNone); 187 return CSSPrimitiveValue::createIdentifier(CSSValueNone);
176 case CSSPropertyMarkerMid: 188 case CSSPropertyMarkerMid:
177 if (!svgStyle->markerMidResource().isEmpty()) 189 if (!svgStyle->markerMidResource().isEmpty())
178 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->markerMidResource()), CSSPrimitiveValue::CSS_URI); 190 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->markerMidResource()), CSSPrimitiveValue::CSS_URI);
179 return CSSPrimitiveValue::createIdentifier(CSSValueNone); 191 return CSSPrimitiveValue::createIdentifier(CSSValueNone);
180 case CSSPropertyMarkerStart: 192 case CSSPropertyMarkerStart:
181 if (!svgStyle->markerStartResource().isEmpty()) 193 if (!svgStyle->markerStartResource().isEmpty())
182 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->markerStartResource()), CSSPrimitiveValue::CSS_URI); 194 return CSSPrimitiveValue::create(serializeAsFragmentIdentifier(s vgStyle->markerStartResource()), CSSPrimitiveValue::CSS_URI);
183 return CSSPrimitiveValue::createIdentifier(CSSValueNone); 195 return CSSPrimitiveValue::createIdentifier(CSSValueNone);
184 case CSSPropertyStroke: 196 case CSSPropertyStroke:
185 return adjustSVGPaintForCurrentColor(SVGPaint::create(svgStyle->stro kePaintType(), svgStyle->strokePaintUri(), svgStyle->strokePaintColor()), *style ); 197 return adjustSVGPaintForCurrentColor(svgStyle->strokePaintType(), sv gStyle->strokePaintUri(), svgStyle->strokePaintColor(), style->color());
186 case CSSPropertyStrokeDasharray: 198 case CSSPropertyStrokeDasharray:
187 return strokeDashArrayToCSSValueList(svgStyle->strokeDashArray()); 199 return strokeDashArrayToCSSValueList(svgStyle->strokeDashArray());
188 case CSSPropertyStrokeDashoffset: 200 case CSSPropertyStrokeDashoffset:
189 return SVGLength::toCSSPrimitiveValue(svgStyle->strokeDashOffset()); 201 return SVGLength::toCSSPrimitiveValue(svgStyle->strokeDashOffset());
190 case CSSPropertyStrokeWidth: 202 case CSSPropertyStrokeWidth:
191 return SVGLength::toCSSPrimitiveValue(svgStyle->strokeWidth()); 203 return SVGLength::toCSSPrimitiveValue(svgStyle->strokeWidth());
192 case CSSPropertyBaselineShift: { 204 case CSSPropertyBaselineShift: {
193 switch (svgStyle->baselineShift()) { 205 switch (svgStyle->baselineShift()) {
194 case BS_BASELINE: 206 case BS_BASELINE:
195 return CSSPrimitiveValue::createIdentifier(CSSValueBaseline) ; 207 return CSSPrimitiveValue::createIdentifier(CSSValueBaseline) ;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 default: 241 default:
230 // If you crash here, it's because you added a css property and are not handling it 242 // If you crash here, it's because you added a css property and are not handling it
231 // in either this switch statement or the one in CSSComputedStyleDelcara tion::getPropertyCSSValue 243 // in either this switch statement or the one in CSSComputedStyleDelcara tion::getPropertyCSSValue
232 ASSERT_WITH_MESSAGE(0, "unimplemented propertyID: %d", propertyID); 244 ASSERT_WITH_MESSAGE(0, "unimplemented propertyID: %d", propertyID);
233 } 245 }
234 WTF_LOG_ERROR("unimplemented propertyID: %d", propertyID); 246 WTF_LOG_ERROR("unimplemented propertyID: %d", propertyID);
235 return nullptr; 247 return nullptr;
236 } 248 }
237 249
238 } 250 }
OLDNEW
« no previous file with comments | « Source/core/css/CSSValue.cpp ('k') | Source/core/css/parser/BisonCSSParser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698