Skip to content
  • hyatt@apple.com's avatar
    WebCore: · cd9e4094
    hyatt@apple.com authored
            Fix for http://bugs.webkit.org/show_bug.cgi?id=14975
    
            Computed size of padding is incorrect because we default padding to auto.  This is a made-up value that
            was only used to implement cellpadding on tables.  We needed this made-up value in order to tell that
            padding wasn't set so that we could then apply cellpadding.
           
            This patch rewrites cellpadding to be like other browsers.  Instead of being a setting on the table
            renderer that applies to all cells (even ones that were not <td>s), cellpadding is now mapped into the
            style of <td>s.  With this change it effectively becomes a content model feature and not a rendering
            feature.
    
            For example, a <td> will pick up cellpadding even when it is not a cell and/or the enclosing <table> is
            not a table.  Anonymous cells and CSS-display-type cells will now never pick up cellpadding.  This behavior
            is all consistent with other browsers.
    
            Reviewed by Antti
    
            Added fast/css/padding-no-renderer.html
    
            * css/CSSStyleSelector.cpp:
            (WebCore::CSSStyleSelector::canShareStyleWithElement):
            (WebCore::CSSStyleSelector::styleForElement):
            * css/CSSStyleSelector.h:
            * dom/StyledElement.cpp:
            * dom/StyledElement.h:
            (WebCore::StyledElement::canHaveAdditionalAttributeStyleDecls):
            (WebCore::StyledElement::additionalAttributeStyleDecls):
            * html/HTMLTableCellElement.cpp:
            (WebCore::HTMLTableCellElement::additionalAttributeStyleDecls):
            * html/HTMLTableCellElement.h:
            (WebCore::HTMLTableCellElement::canHaveAdditionalAttributeStyleDecls):
            * html/HTMLTableColElement.cpp:
            (WebCore::HTMLTableColElement::additionalAttributeStyleDecls):
            * html/HTMLTableColElement.h:
            (WebCore::HTMLTableColElement::canHaveAdditionalAttributeStyleDecls):
            * html/HTMLTableElement.cpp:
            (WebCore::HTMLTableElement::parseMappedAttribute):
            (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
            (WebCore::HTMLTableElement::addSharedCellDecls):
            (WebCore::HTMLTableElement::addSharedCellBordersDecl):
            (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
            (WebCore::HTMLTableElement::addSharedGroupDecls):
            (WebCore::HTMLTableElement::attach):
            * html/HTMLTableElement.h:
            (WebCore::HTMLTableElement::canHaveAdditionalAttributeStyleDecls):
            * html/HTMLTableSectionElement.cpp:
            (WebCore::HTMLTableSectionElement::additionalAttributeStyleDecls):
            * html/HTMLTableSectionElement.h:
            (WebCore::HTMLTableSectionElement::canHaveAdditionalAttributeStyleDecls):
            * rendering/AutoTableLayout.cpp:
            (WebCore::AutoTableLayout::recalcColumn):
            * rendering/RenderObject.cpp:
            (WebCore::RenderObject::paddingTop):
            (WebCore::RenderObject::paddingBottom):
            (WebCore::RenderObject::paddingLeft):
            (WebCore::RenderObject::paddingRight):
            * rendering/RenderStyle.cpp:
            (WebCore::StyleSurroundData::StyleSurroundData):
            * rendering/RenderStyle.h:
            (WebCore::RenderStyle::initialPadding):
            * rendering/RenderTable.cpp:
            (WebCore::RenderTable::RenderTable):
            * rendering/RenderTable.h:
    
    LayoutTests:
    
            Updated results for http://bugs.webkit.org/show_bug.cgi?id=14975
    
            Reviewed by Antti
    
            * fast/css/computed-style-without-renderer-expected.txt:
            * fast/css/padding-no-renderer-expected.txt: Added.
            * fast/css/padding-no-renderer.html: Added.
            * platform/mac/fast/css/acid2-expected.checksum:
            * platform/mac/fast/css/acid2-expected.png:
            * platform/mac/fast/css/acid2-expected.txt:
            * platform/mac/fast/css/acid2-pixel-expected.checksum:
            * platform/mac/fast/css/acid2-pixel-expected.png:
            * platform/mac/fast/css/acid2-pixel-expected.txt:
            * platform/mac/fast/frames/viewsource-attribute-expected.checksum:
            * platform/mac/fast/frames/viewsource-attribute-expected.png:
            * platform/mac/fast/frames/viewsource-attribute-expected.txt:
            * platform/mac/fast/lists/ordered-list-with-no-ol-tag-expected.checksum:
            * platform/mac/fast/lists/ordered-list-with-no-ol-tag-expected.png:
            * platform/mac/fast/lists/ordered-list-with-no-ol-tag-expected.txt:
            * platform/mac/fast/table/add-before-anonymous-child-expected.checksum:
            * platform/mac/fast/table/add-before-anonymous-child-expected.png:
            * platform/mac/fast/table/add-before-anonymous-child-expected.txt:
            * platform/mac/fast/table/cell-absolute-child-expected.checksum:
            * platform/mac/fast/table/cell-absolute-child-expected.png:
            * platform/mac/fast/table/cell-absolute-child-expected.txt:
            * platform/mac/fast/table/frame-and-rules-expected.checksum:
            * platform/mac/fast/table/frame-and-rules-expected.png:
            * platform/mac/fast/table/frame-and-rules-expected.txt:
            * platform/mac/http/tests/misc/acid2-expected.checksum:
            * platform/mac/http/tests/misc/acid2-expected.png:
            * platform/mac/http/tests/misc/acid2-expected.txt:
            * platform/mac/http/tests/misc/acid2-pixel-expected.checksum:
            * platform/mac/http/tests/misc/acid2-pixel-expected.png:
            * platform/mac/http/tests/misc/acid2-pixel-expected.txt:
            * platform/mac/tables/mozilla/bugs/bug30985-expected.checksum:
            * platform/mac/tables/mozilla/bugs/bug30985-expected.png:
            * platform/mac/tables/mozilla/bugs/bug30985-expected.txt:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@29647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    cd9e4094