Changeset 85067 in webkit


Ignore:
Timestamp:
Apr 27, 2011 11:29:06 AM (13 years ago)
Author:
mitz@apple.com
Message:

<rdar://problem/9335973> REGRESSION (r84341): Buttons in the Mac App store are rendered incorrectly
https://bugs.webkit.org/show_bug.cgi?id=59622

Reviewed by Anders Carlsson.

Source/WebCore:

Test: fast/borders/border-image-trumps-radius.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::determineBackgroundBleedAvoidance): If there is a renderable, loaded border
image, then border radius is ignored, so no bleed avoidance is needed.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::borderImageIsLoadedAndCanBeRendered): Added. Moved some logic here from...
(WebCore::RenderObject::mustRepaintBackgroundOrBorder): ...here.

  • rendering/RenderObject.h:

LayoutTests:

  • fast/borders/border-image-trumps-radius-expected.png: Added.
  • fast/borders/border-image-trumps-radius-expected.txt: Added.
  • fast/borders/border-image-trumps-radius.html: Added.
Location:
trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r85066 r85067  
     12011-04-27  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        <rdar://problem/9335973> REGRESSION (r84341): Buttons in the Mac App store are rendered incorrectly
     6        https://bugs.webkit.org/show_bug.cgi?id=59622
     7
     8        * fast/borders/border-image-trumps-radius-expected.png: Added.
     9        * fast/borders/border-image-trumps-radius-expected.txt: Added.
     10        * fast/borders/border-image-trumps-radius.html: Added.
     11
    1122011-04-27  Martin Robinson  <mrobinson@igalia.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r85064 r85067  
     12011-04-27  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        <rdar://problem/9335973> REGRESSION (r84341): Buttons in the Mac App store are rendered incorrectly
     6        https://bugs.webkit.org/show_bug.cgi?id=59622
     7
     8        Test: fast/borders/border-image-trumps-radius.html
     9
     10        * rendering/RenderBox.cpp:
     11        (WebCore::RenderBox::determineBackgroundBleedAvoidance): If there is a renderable, loaded border
     12        image, then border radius is ignored, so no bleed avoidance is needed.
     13        * rendering/RenderObject.cpp:
     14        (WebCore::RenderObject::borderImageIsLoadedAndCanBeRendered): Added. Moved some logic here from...
     15        (WebCore::RenderObject::mustRepaintBackgroundOrBorder): ...here.
     16        * rendering/RenderObject.h:
     17
    1182011-02-03  Martin Robinson  <mrobinson@igalia.com>
    219
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r84991 r85067  
    821821    const RenderStyle* style = this->style();
    822822
    823     if (!style->hasBackground() || !style->hasBorder() || !style->hasBorderRadius())
     823    if (!style->hasBackground() || !style->hasBorder() || !style->hasBorderRadius() || borderImageIsLoadedAndCanBeRendered())
    824824        return BackgroundBleedNone;
    825825
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r84454 r85067  
    678678}
    679679
     680bool RenderObject::borderImageIsLoadedAndCanBeRendered() const
     681{
     682    ASSERT(style()->hasBorder());
     683
     684    StyleImage* borderImage = style()->borderImage().image();
     685    return borderImage && borderImage->canRender(style()->effectiveZoom()) && borderImage->isLoaded();
     686}
     687
    680688bool RenderObject::mustRepaintBackgroundOrBorder() const
    681689{
     
    691699     
    692700    // Our fill layers are ok.  Let's check border.
    693     if (style()->hasBorder()) {
    694         // Border images are not ok.
    695         StyleImage* borderImage = style()->borderImage().image();
    696         bool shouldPaintBorderImage = borderImage && borderImage->canRender(style()->effectiveZoom());
    697 
    698         // If the image hasn't loaded, we're still using the normal border style.
    699         if (shouldPaintBorderImage && borderImage->isLoaded())
    700             return true;
    701     }
     701    if (style()->hasBorder() && borderImageIsLoadedAndCanBeRendered())
     702        return true;
    702703
    703704    return false;
  • trunk/Source/WebCore/rendering/RenderObject.h

    r84589 r85067  
    417417   
    418418    bool hasBoxDecorations() const { return m_paintBackground; }
     419    bool borderImageIsLoadedAndCanBeRendered() const;
    419420    bool mustRepaintBackgroundOrBorder() const;
    420421    bool hasBackground() const { return style()->hasBackground(); }
Note: See TracChangeset for help on using the changeset viewer.