Changeset 32421 in webkit


Ignore:
Timestamp:
Apr 22, 2008 8:42:31 PM (16 years ago)
Author:
mitz@apple.com
Message:

WebCore:

2008-04-22 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dan Bernstein.

  • fix https://bugs.webkit.org/show_bug.cgi?id=18584 border-color, outline-color, column-color, -webkit-text-stroke-color, and -webkit-text-fill-color inheritance to correctly use parent's color if the parent's corresponding (border, outline, etc.)-color property wasn't set.

Test: fast/borders/border-color-inherit.html

  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty):

LayoutTests:

2008-04-22 Anatoli Papirovski <apapirovski@mac.com>

Reviewed by Dan Bernstein.

https://bugs.webkit.org/show_bug.cgi?id=18584
Add a test case for border-color inheritance.

  • fast/borders/border-color-inherit.html: Added.
  • platform/mac/fast/borders/border-color-inherit-expected.checksum: Added.
  • platform/mac/fast/borders/border-color-inherit-expected.png: Added.
  • platform/mac/fast/borders/border-color-inherit-expected.txt: Added.
Location:
trunk
Files:
4 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r32417 r32421  
     12008-04-22  Anatoli Papirovski  <apapirovski@mac.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=18584
     6        Add a test case for border-color inheritance.
     7
     8        * fast/borders/border-color-inherit.html: Added.
     9        * platform/mac/fast/borders/border-color-inherit-expected.checksum: Added.
     10        * platform/mac/fast/borders/border-color-inherit-expected.png: Added.
     11        * platform/mac/fast/borders/border-color-inherit-expected.txt: Added.
     12
    1132008-04-22  David Hyatt  <hyatt@apple.com>
    214
  • trunk/WebCore/ChangeLog

    r32418 r32421  
     12008-04-22  Anatoli Papirovski  <apapirovski@mac.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        - fix https://bugs.webkit.org/show_bug.cgi?id=18584
     6        border-color, outline-color, column-color, -webkit-text-stroke-color,
     7        and -webkit-text-fill-color inheritance to correctly use parent's color
     8        if the parent's corresponding (border, outline, etc.)-color property
     9        wasn't set.
     10
     11        Test: fast/borders/border-color-inherit.html
     12
     13        * css/CSSStyleSelector.cpp:
     14        (WebCore::CSSStyleSelector::applyProperty):
     15
    1162008-04-22  Alp Toker  <alp@nuanti.com>
    217
  • trunk/WebCore/css/CSSStyleSelector.cpp

    r32417 r32421  
    235235if (id == propID) { \
    236236    m_style->set##Prop(m_parentStyle->prop()); \
     237    return; \
     238}
     239   
     240#define HANDLE_INHERIT_COND_WITH_BACKUP(propID, prop, propAlt, Prop) \
     241if (id == propID) { \
     242    if (m_parentStyle->prop().isValid()) \
     243        m_style->set##Prop(m_parentStyle->prop()); \
     244    else \
     245        m_style->set##Prop(m_parentStyle->propAlt()); \
    237246    return; \
    238247}
     
    27852794        if (isInherit) {
    27862795            HANDLE_INHERIT_COND(CSSPropertyBackgroundColor, backgroundColor, BackgroundColor)
    2787             HANDLE_INHERIT_COND(CSSPropertyBorderTopColor, borderTopColor, BorderTopColor)
    2788             HANDLE_INHERIT_COND(CSSPropertyBorderBottomColor, borderBottomColor, BorderBottomColor)
    2789             HANDLE_INHERIT_COND(CSSPropertyBorderRightColor, borderRightColor, BorderRightColor)
    2790             HANDLE_INHERIT_COND(CSSPropertyBorderLeftColor, borderLeftColor, BorderLeftColor)
     2796            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyBorderTopColor, borderTopColor, color, BorderTopColor)
     2797            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyBorderBottomColor, borderBottomColor, color, BorderBottomColor)
     2798            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyBorderRightColor, borderRightColor, color, BorderRightColor)
     2799            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyBorderLeftColor, borderLeftColor, color, BorderLeftColor)
    27912800            HANDLE_INHERIT_COND(CSSPropertyColor, color, Color)
    2792             HANDLE_INHERIT_COND(CSSPropertyOutlineColor, outlineColor, OutlineColor)
    2793             HANDLE_INHERIT_COND(CSSPropertyWebkitColumnRuleColor, columnRuleColor, ColumnRuleColor)
    2794             HANDLE_INHERIT_COND(CSSPropertyWebkitTextStrokeColor, textStrokeColor, TextStrokeColor)
    2795             HANDLE_INHERIT_COND(CSSPropertyWebkitTextFillColor, textFillColor, TextFillColor)
     2801            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyOutlineColor, outlineColor, color, OutlineColor)
     2802            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyWebkitColumnRuleColor, columnRuleColor, color, ColumnRuleColor)
     2803            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyWebkitTextStrokeColor, textStrokeColor, color, TextStrokeColor)
     2804            HANDLE_INHERIT_COND_WITH_BACKUP(CSSPropertyWebkitTextFillColor, textFillColor, color, TextFillColor)
    27962805            return;
    27972806        }
     
    37093718        {
    37103719            if (isInherit) {
    3711                 m_style->setBorderTopColor(m_parentStyle->borderTopColor());
    3712                 m_style->setBorderBottomColor(m_parentStyle->borderBottomColor());
    3713                 m_style->setBorderLeftColor(m_parentStyle->borderLeftColor());
    3714                 m_style->setBorderRightColor(m_parentStyle->borderRightColor());
     3720                m_style->setBorderTopColor(m_parentStyle->borderTopColor().isValid() ? m_parentStyle->borderTopColor() : m_parentStyle->color());
     3721                m_style->setBorderBottomColor(m_parentStyle->borderBottomColor().isValid() ? m_parentStyle->borderBottomColor() : m_parentStyle->color());
     3722                m_style->setBorderLeftColor(m_parentStyle->borderLeftColor().isValid() ? m_parentStyle->borderLeftColor() : m_parentStyle->color());
     3723                m_style->setBorderRightColor(m_parentStyle->borderRightColor().isValid() ? m_parentStyle->borderRightColor(): m_parentStyle->color());
    37153724            }
    37163725            else if (isInitial) {
     
    37543763    case CSSPropertyBorderTop:
    37553764        if (isInherit) {
    3756             m_style->setBorderTopColor(m_parentStyle->borderTopColor());
     3765            m_style->setBorderTopColor(m_parentStyle->borderTopColor().isValid() ? m_parentStyle->borderTopColor() : m_parentStyle->color());
    37573766            m_style->setBorderTopStyle(m_parentStyle->borderTopStyle());
    37583767            m_style->setBorderTopWidth(m_parentStyle->borderTopWidth());
     
    37633772    case CSSPropertyBorderRight:
    37643773        if (isInherit) {
    3765             m_style->setBorderRightColor(m_parentStyle->borderRightColor());
     3774            m_style->setBorderRightColor(m_parentStyle->borderRightColor().isValid() ? m_parentStyle->borderRightColor() : m_parentStyle->color());
    37663775            m_style->setBorderRightStyle(m_parentStyle->borderRightStyle());
    37673776            m_style->setBorderRightWidth(m_parentStyle->borderRightWidth());
     
    37723781    case CSSPropertyBorderBottom:
    37733782        if (isInherit) {
    3774             m_style->setBorderBottomColor(m_parentStyle->borderBottomColor());
     3783            m_style->setBorderBottomColor(m_parentStyle->borderBottomColor().isValid() ? m_parentStyle->borderBottomColor() : m_parentStyle->color());
    37753784            m_style->setBorderBottomStyle(m_parentStyle->borderBottomStyle());
    37763785            m_style->setBorderBottomWidth(m_parentStyle->borderBottomWidth());
     
    37813790    case CSSPropertyBorderLeft:
    37823791        if (isInherit) {
    3783             m_style->setBorderLeftColor(m_parentStyle->borderLeftColor());
     3792            m_style->setBorderLeftColor(m_parentStyle->borderLeftColor().isValid() ? m_parentStyle->borderLeftColor() : m_parentStyle->color());
    37843793            m_style->setBorderLeftStyle(m_parentStyle->borderLeftStyle());
    37853794            m_style->setBorderLeftWidth(m_parentStyle->borderLeftWidth());
     
    38753884        if (isInherit) {
    38763885            m_style->setOutlineWidth(m_parentStyle->outlineWidth());
    3877             m_style->setOutlineColor(m_parentStyle->outlineColor());
     3886            m_style->setOutlineColor(m_parentStyle->outlineColor().isValid() ? m_parentStyle->outlineColor() : m_parentStyle->color());
    38783887            m_style->setOutlineStyle(m_parentStyle->outlineStyle());
    38793888        }
     
    42304239     case CSSPropertyWebkitColumnRule:
    42314240        if (isInherit) {
    4232             m_style->setColumnRuleColor(m_parentStyle->columnRuleColor());
     4241            m_style->setColumnRuleColor(m_parentStyle->columnRuleColor().isValid() ? m_parentStyle->columnRuleColor() : m_parentStyle->color());
    42334242            m_style->setColumnRuleStyle(m_parentStyle->columnRuleStyle());
    42344243            m_style->setColumnRuleWidth(m_parentStyle->columnRuleWidth());
Note: See TracChangeset for help on using the changeset viewer.