Changeset 60767 in webkit


Ignore:
Timestamp:
Jun 6, 2010 8:07:54 PM (14 years ago)
Author:
morrita@google.com
Message:

2010-06-06 MORITA Hajime <morrita@google.com>

Reviewed by Kent Tamura.

ASSERTION FAILED with -webkit-appearance:progress-bar for non-progress bar elements
https://bugs.webkit.org/show_bug.cgi?id=40158

  • fast/css/invalid-appearance-progress-bar-meter-expected.txt: Added.
  • fast/css/invalid-appearance-progress-bar-meter.html: Added.
  • fast/css/script-tests/invalid-appearance-progress-bar-meter.js: Added.

2010-06-06 MORITA Hajime <morrita@google.com>

Reviewed by Kent Tamura.

ASSERTION FAILED with -webkit-appearance:progress-bar for non <progress> elements
https://bugs.webkit.org/show_bug.cgi?id=40158

paintProgressBar() and paintMeter() assumed given RenderObject is
RenderProgress or RenderMeter respectively, but arbitrary elements
can have -webkit-appearance: progress-bar and such elements
violates that assumption. So this change added type check before
downcasting the RenderObject.

  • platform/qt/RenderThemeQt.cpp: (WebCore::RenderThemeQt::paintProgressBar):
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::paintMeter):
  • rendering/RenderThemeChromiumSkia.cpp: (WebCore::RenderThemeChromiumSkia::paintProgressBar):
  • rendering/RenderThemeChromiumWin.cpp: (WebCore::RenderThemeChromiumWin::paintProgressBar):
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintProgressBar):
Location:
trunk
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r60761 r60767  
     12010-06-06  MORITA Hajime  <morrita@google.com>
     2
     3        Reviewed by Kent Tamura.
     4
     5        ASSERTION FAILED with -webkit-appearance:progress-bar for non-progress bar elements
     6        https://bugs.webkit.org/show_bug.cgi?id=40158
     7
     8        * fast/css/invalid-appearance-progress-bar-meter-expected.txt: Added.
     9        * fast/css/invalid-appearance-progress-bar-meter.html: Added.
     10        * fast/css/script-tests/invalid-appearance-progress-bar-meter.js: Added.
     11
    1122010-06-06  Dirk Schulze  <krit@webkit.org>
    213
  • trunk/WebCore/ChangeLog

    r60765 r60767  
     12010-06-06  MORITA Hajime  <morrita@google.com>
     2
     3        Reviewed by Kent Tamura.
     4
     5        ASSERTION FAILED with -webkit-appearance:progress-bar for non <progress> elements
     6        https://bugs.webkit.org/show_bug.cgi?id=40158
     7
     8        paintProgressBar() and paintMeter() assumed given RenderObject is
     9        RenderProgress or RenderMeter respectively, but arbitrary elements
     10        can have -webkit-appearance: progress-bar and such elements
     11        violates that assumption. So this change added type check before
     12        downcasting the RenderObject.
     13
     14        * platform/qt/RenderThemeQt.cpp:
     15        (WebCore::RenderThemeQt::paintProgressBar):
     16        * rendering/RenderTheme.cpp:
     17        (WebCore::RenderTheme::paintMeter):
     18        * rendering/RenderThemeChromiumSkia.cpp:
     19        (WebCore::RenderThemeChromiumSkia::paintProgressBar):
     20        * rendering/RenderThemeChromiumWin.cpp:
     21        (WebCore::RenderThemeChromiumWin::paintProgressBar):
     22        * rendering/RenderThemeMac.mm:
     23        (WebCore::RenderThemeMac::paintProgressBar):
     24
    1252010-06-06  Gavin Barraclough  <barraclough@apple.com>
    226
  • trunk/WebCore/platform/qt/RenderThemeQt.cpp

    r60742 r60767  
    728728bool RenderThemeQt::paintProgressBar(RenderObject* o, const RenderObject::PaintInfo& pi, const IntRect& r)
    729729{
     730    if (!o->isProgress())
     731        return true;
     732
    730733    StylePainter p(this, pi);
    731734    if (!p.isValid())
  • trunk/WebCore/rendering/RenderTheme.cpp

    r60343 r60767  
    896896bool RenderTheme::paintMeter(RenderObject* renderObject, const RenderObject::PaintInfo& paintInfo, const IntRect& rect)
    897897{
     898    if (!renderObject->isMeter())
     899        return true;
     900
    898901    // Some platforms do not have a native gauge widget, so we draw here a default implementation.
    899902    RenderMeter* renderMeter = toRenderMeter(renderObject);
  • trunk/WebCore/rendering/RenderThemeChromiumSkia.cpp

    r60658 r60767  
    803803}
    804804
    805 
    806805double RenderThemeChromiumSkia::animationRepeatIntervalForProgressBar(RenderProgress*) const
    807806{
     
    821820    static Image* rightBorderImage = Image::loadPlatformResource("linuxProgressBorderRight").releaseRef();
    822821    ASSERT(barImage->height() == valueImage->height());
     822
     823    if (!renderObject->isProgress())
     824        return true;
    823825
    824826    paintInfo.context->platformContext()->setImageResamplingHint(barImage->size(), rect.size());
  • trunk/WebCore/rendering/RenderThemeChromiumWin.cpp

    r60605 r60767  
    680680bool RenderThemeChromiumWin::paintProgressBar(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
    681681{
     682    if (!renderObject->isProgress())
     683        return true;
     684
    682685    RenderProgress* renderProgress = toRenderProgress(o);
    683686    // For indeterminate bar, valueRect is ignored and it is computed by the theme engine
  • trunk/WebCore/rendering/RenderThemeMac.mm

    r59956 r60767  
    821821bool RenderThemeMac::paintProgressBar(RenderObject* renderObject, const RenderObject::PaintInfo& paintInfo, const IntRect& rect)
    822822{
     823    if (!renderObject->isProgress())
     824        return true;
     825
    823826    RenderProgress* renderProgress = toRenderProgress(renderObject);
    824827    HIThemeTrackDrawInfo trackInfo;
Note: See TracChangeset for help on using the changeset viewer.