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

Side by Side Diff: Source/build/scripts/templates/StyleBuilderFunctions.cpp.tmpl

Issue 1219153003: Unify handling of <color> for SVG/non-SVG properties (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 5 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 | Annotate | Revision Log
« no previous file with comments | « LayoutTests/svg/dom/rgb-color-parser-expected.txt ('k') | Source/core/css/CSSProperties.in » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 {% from 'macros.tmpl' import license %} 1 {% from 'macros.tmpl' import license %}
2 {# 2 {#
3 This file is for property handlers which use the templating engine to 3 This file is for property handlers which use the templating engine to
4 reduce (handwritten) code duplication. 4 reduce (handwritten) code duplication.
5 5
6 The `properties' dict can be used to access a property's parameters in 6 The `properties' dict can be used to access a property's parameters in
7 jinja2 templates (i.e. setter, getter, initial, type_name) 7 jinja2 templates (i.e. setter, getter, initial, type_name)
8 #} 8 #}
9 #include "config.h" 9 #include "config.h"
10 #include "StyleBuilderFunctions.h" 10 #include "StyleBuilderFunctions.h"
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 {{declare_value_function(property_id)}} 513 {{declare_value_function(property_id)}}
514 { 514 {
515 String url; 515 String url;
516 if (value->isValueList()) { 516 if (value->isValueList()) {
517 CSSValueList* list = toCSSValueList(value); 517 CSSValueList* list = toCSSValueList(value);
518 ASSERT(list->length() > 1); 518 ASSERT(list->length() > 1);
519 519
520 if (!list->item(0)->isPrimitiveValue()) 520 if (!list->item(0)->isPrimitiveValue())
521 return; 521 return;
522 522
523 CSSPrimitiveValue* pValue = toCSSPrimitiveValue(list->item(0)); 523 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(list->item(0));
524 if (!pValue->isURI()) 524 if (!primitiveValue->isURI())
525 return; 525 return;
526 526
527 url = pValue->getStringValue(); 527 url = primitiveValue->getStringValue();
528 value = list->item(1); 528 value = list->item(1);
529 } 529 }
530 if (value->isPrimitiveValue()) { 530 if (value->isPrimitiveValue()) {
531 CSSPrimitiveValue* pValue = toCSSPrimitiveValue(value); 531 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value);
532 Color c; 532 Color color;
533 SVGPaintType ptype = SVG_PAINTTYPE_RGBCOLOR; 533 SVGPaintType paintType = SVG_PAINTTYPE_RGBCOLOR;
534 if (pValue->isRGBColor()) { 534 if (primitiveValue->getValueID() == CSSValueNone) {
535 c = pValue->getRGBA32Value(); 535 paintType = url.isEmpty() ? SVG_PAINTTYPE_NONE : SVG_PAINTTYPE_URI_N ONE;
536 ptype = url.isEmpty() ? SVG_PAINTTYPE_RGBCOLOR : SVG_PAINTTYPE_URI_R GBCOLOR; 536 } else if (primitiveValue->isURI()) {
537 } else if (pValue->getValueID() == CSSValueCurrentcolor) { 537 paintType = SVG_PAINTTYPE_URI;
538 c = state.style()->color(); 538 url = primitiveValue->getStringValue();
539 ptype = url.isEmpty() ? SVG_PAINTTYPE_CURRENTCOLOR : SVG_PAINTTYPE_U RI_CURRENTCOLOR; 539 } else if (primitiveValue->getValueID() == CSSValueCurrentcolor) {
540 } else if (pValue->getValueID() == CSSValueNone) { 540 color = state.style()->color();
541 ptype = url.isEmpty() ? SVG_PAINTTYPE_NONE : SVG_PAINTTYPE_URI_NONE; 541 paintType = url.isEmpty() ? SVG_PAINTTYPE_CURRENTCOLOR : SVG_PAINTTY PE_URI_CURRENTCOLOR;
542 } else if (pValue->isURI()) {
543 ptype = SVG_PAINTTYPE_URI;
544 url = pValue->getStringValue();
545 } else { 542 } else {
546 return; 543 color = StyleBuilderConverter::convertColor(state, primitiveValue);
544 paintType = url.isEmpty() ? SVG_PAINTTYPE_RGBCOLOR : SVG_PAINTTYPE_U RI_RGBCOLOR;
547 } 545 }
548 {{set_value(property)}}(ptype, c, url, 546 {{set_value(property)}}(paintType, color, url,
549 state.applyPropertyToRegularStyle(), 547 state.applyPropertyToRegularStyle(),
550 state.applyPropertyToVisitedLinkStyle()); 548 state.applyPropertyToVisitedLinkStyle());
551 } 549 }
552 } 550 }
553 {% endmacro %} 551 {% endmacro %}
554 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}} 552 {{apply_svg_paint('CSSPropertyFill', 'FillPaint')}}
555 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}} 553 {{apply_svg_paint('CSSPropertyStroke', 'StrokePaint')}}
556 } // namespace blink 554 } // namespace blink
OLDNEW
« no previous file with comments | « LayoutTests/svg/dom/rgb-color-parser-expected.txt ('k') | Source/core/css/CSSProperties.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698