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

Side by Side Diff: Source/WebCore/rendering/svg/RenderSVGResource.cpp

Issue 7002001: Revert 79985 - 2011-03-01 Nikolas Zimmermann <nzimmermann@rim.com> (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/742/
Patch Set: Created 9 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2007 Rob Buis <buis@kde.org> 3 * Copyright (C) 2007 Rob Buis <buis@kde.org>
4 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> 4 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org>
5 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 5 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 // If we have no fill/stroke, return 0. 45 // If we have no fill/stroke, return 0.
46 if (mode == ApplyToFillMode) { 46 if (mode == ApplyToFillMode) {
47 if (!svgStyle->hasFill()) 47 if (!svgStyle->hasFill())
48 return 0; 48 return 0;
49 } else { 49 } else {
50 if (!svgStyle->hasStroke()) 50 if (!svgStyle->hasStroke())
51 return 0; 51 return 0;
52 } 52 }
53 53
54 bool applyToFill = mode == ApplyToFillMode; 54 SVGPaint* paint = mode == ApplyToFillMode ? svgStyle->fillPaint() : svgStyle ->strokePaint();
55 SVGPaint::SVGPaintType paintType = applyToFill ? svgStyle->fillPaintType() : svgStyle->strokePaintType(); 55 ASSERT(paint);
56
57 SVGPaint::SVGPaintType paintType = paint->paintType();
56 if (paintType == SVGPaint::SVG_PAINTTYPE_NONE) 58 if (paintType == SVGPaint::SVG_PAINTTYPE_NONE)
57 return 0; 59 return 0;
58 60
59 Color color; 61 Color color;
60 switch (paintType) { 62 if (paintType == SVGPaint::SVG_PAINTTYPE_RGBCOLOR
61 case SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR: 63 || paintType == SVGPaint::SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR
62 case SVGPaint::SVG_PAINTTYPE_RGBCOLOR: 64 || paintType == SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR
63 case SVGPaint::SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR: 65 || paintType == SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR)
64 case SVGPaint::SVG_PAINTTYPE_URI_CURRENTCOLOR: 66 color = paint->color();
65 case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR: 67 else if (paintType == SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR || paintType == S VGPaint::SVG_PAINTTYPE_URI_CURRENTCOLOR)
66 case SVGPaint::SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR: 68 color = style->visitedDependentColor(CSSPropertyColor);
67 color = applyToFill ? svgStyle->fillPaintColor() : svgStyle->strokePaint Color();
68 default:
69 break;
70 }
71 69
72 if (style->insideLink() == InsideVisitedLink) { 70 if (style->insideLink() == InsideVisitedLink) {
73 RenderStyle* visitedStyle = style->getCachedPseudoStyle(VISITED_LINK); 71 RenderStyle* visitedStyle = style->getCachedPseudoStyle(VISITED_LINK);
74 ASSERT(visitedStyle); 72 ASSERT(visitedStyle);
75 73
76 const SVGRenderStyle* svgVisitedStyle = visitedStyle->svgStyle(); 74 if (SVGPaint* visitedPaint = mode == ApplyToFillMode ? visitedStyle->svg Style()->fillPaint() : visitedStyle->svgStyle()->strokePaint()) {
77 SVGPaint::SVGPaintType visitedPaintType = applyToFill ? svgVisitedStyle- >fillPaintType() : svgVisitedStyle->strokePaintType(); 75 // For SVG_PAINTTYPE_CURRENTCOLOR, 'color' already contains the 'vis itedColor'.
78 76 if (visitedPaint->paintType() < SVGPaint::SVG_PAINTTYPE_URI_NONE && visitedPaint->paintType() != SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR) {
79 // For SVG_PAINTTYPE_CURRENTCOLOR, 'color' already contains the 'visited Color'. 77 const Color& visitedColor = visitedPaint->color();
80 if (visitedPaintType < SVGPaint::SVG_PAINTTYPE_URI_NONE && visitedPaintT ype != SVGPaint::SVG_PAINTTYPE_CURRENTCOLOR) { 78 if (visitedColor.isValid())
81 const Color& visitedColor = applyToFill ? svgVisitedStyle->fillPaint Color() : svgVisitedStyle->strokePaintColor(); 79 color = Color(visitedColor.red(), visitedColor.green(), visi tedColor.blue(), color.alpha());
82 if (visitedColor.isValid()) 80 }
83 color = Color(visitedColor.red(), visitedColor.green(), visitedC olor.blue(), color.alpha());
84 } 81 }
85 } 82 }
86 83
87 // If the primary resource is just a color, return immediately. 84 // If the primary resource is just a color, return immediately.
88 RenderSVGResourceSolidColor* colorResource = RenderSVGResource::sharedSolidP aintingResource(); 85 RenderSVGResourceSolidColor* colorResource = RenderSVGResource::sharedSolidP aintingResource();
89 if (paintType < SVGPaint::SVG_PAINTTYPE_URI_NONE) { 86 if (paintType < SVGPaint::SVG_PAINTTYPE_URI_NONE) {
90 // If an invalid fill color is specified, fallback to fill/stroke="none" . 87 // If an invalid fill color is specified, fallback to fill/stroke="none" .
91 if (!color.isValid()) 88 if (!color.isValid())
92 return 0; 89 return 0;
93 90
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 break; 152 break;
156 } 153 }
157 154
158 current = current->parent(); 155 current = current->parent();
159 } 156 }
160 } 157 }
161 158
162 } 159 }
163 160
164 #endif 161 #endif
OLDNEW
« no previous file with comments | « Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp ('k') | Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698