Changeset 52299 in webkit


Ignore:
Timestamp:
Dec 17, 2009 9:42:26 PM (14 years ago)
Author:
hamaji@chromium.org
Message:

2009-12-17 Shinichiro Hamaji <hamaji@chromium.org>

Reviewed by Dan Bernstein.

marquee with display:inline causes crash
https://bugs.webkit.org/show_bug.cgi?id=32374

  • fast/inline/inline-marquee-crash-expected.txt: Added.
  • fast/inline/inline-marquee-crash.html: Added.

2009-12-17 Shinichiro Hamaji <hamaji@chromium.org>

Reviewed by Dan Bernstein.

marquee with display:inline causes crash
https://bugs.webkit.org/show_bug.cgi?id=32374

Test: fast/inline/inline-marquee-crash.html

  • html/HTMLMarqueeElement.cpp: (WebCore::HTMLMarqueeElement::start): (WebCore::HTMLMarqueeElement::stop): (WebCore::HTMLMarqueeElement::suspend): (WebCore::HTMLMarqueeElement::resume): (WebCore::HTMLMarqueeElement::renderMarquee):
  • html/HTMLMarqueeElement.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::styleChanged):
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r52297 r52299  
     12009-12-17  Shinichiro Hamaji  <hamaji@chromium.org>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        marquee with display:inline causes crash
     6        https://bugs.webkit.org/show_bug.cgi?id=32374
     7
     8        * fast/inline/inline-marquee-crash-expected.txt: Added.
     9        * fast/inline/inline-marquee-crash.html: Added.
     10
    1112009-12-17  Fumitoshi Ukai  <ukai@chromium.org>
    212
  • trunk/WebCore/ChangeLog

    r52294 r52299  
     12009-12-17  Shinichiro Hamaji  <hamaji@chromium.org>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        marquee with display:inline causes crash
     6        https://bugs.webkit.org/show_bug.cgi?id=32374
     7
     8        Test: fast/inline/inline-marquee-crash.html
     9
     10        * html/HTMLMarqueeElement.cpp:
     11        (WebCore::HTMLMarqueeElement::start):
     12        (WebCore::HTMLMarqueeElement::stop):
     13        (WebCore::HTMLMarqueeElement::suspend):
     14        (WebCore::HTMLMarqueeElement::resume):
     15        (WebCore::HTMLMarqueeElement::renderMarquee):
     16        * html/HTMLMarqueeElement.h:
     17        * rendering/RenderLayer.cpp:
     18        (WebCore::RenderLayer::styleChanged):
     19
    1202009-12-17  Zoltan Horvath  <zoltan@webkit.org>
    221
  • trunk/WebCore/html/HTMLMarqueeElement.cpp

    r45747 r52299  
    113113void HTMLMarqueeElement::start()
    114114{
    115     if (renderer() && renderer()->hasLayer() && renderBox()->layer()->marquee())
    116         renderBox()->layer()->marquee()->start();
     115    if (RenderMarquee* marqueeRenderer = renderMarquee())
     116        marqueeRenderer->start();
    117117}
    118118
    119119void HTMLMarqueeElement::stop()
    120120{
    121     if (renderer() && renderer()->hasLayer() && renderBox()->layer()->marquee())
    122         renderBox()->layer()->marquee()->stop();
     121    if (RenderMarquee* marqueeRenderer = renderMarquee())
     122        marqueeRenderer->stop();
    123123}
    124124
     
    130130void HTMLMarqueeElement::suspend()
    131131{
    132     if (renderer() && renderer()->hasLayer() && renderBox()->layer()->marquee())
    133         renderBox()->layer()->marquee()->suspend();
     132    if (RenderMarquee* marqueeRenderer = renderMarquee())
     133        marqueeRenderer->suspend();
    134134}
    135    
     135
    136136void HTMLMarqueeElement::resume()
    137137{
    138     if (renderer() && renderer()->hasLayer() && renderBox()->layer()->marquee())
    139         renderBox()->layer()->marquee()->updateMarqueePosition();
     138    if (RenderMarquee* marqueeRenderer = renderMarquee())
     139        marqueeRenderer->updateMarqueePosition();
     140}
     141
     142RenderMarquee* HTMLMarqueeElement::renderMarquee() const
     143{
     144    if (renderer() && renderer()->hasLayer())
     145        return renderBoxModelObject()->layer()->marquee();
     146    return 0;
    140147}
    141148
  • trunk/WebCore/html/HTMLMarqueeElement.h

    r42161 r52299  
    2929namespace WebCore {
    3030
     31class RenderMarquee;
     32
    3133class HTMLMarqueeElement : public HTMLElement, private ActiveDOMObject {
    3234public:
     
    5254    virtual void resume();
    5355
     56    RenderMarquee* renderMarquee() const;
     57
    5458    int m_minimumDelay;
    5559};
  • trunk/WebCore/rendering/RenderLayer.cpp

    r52034 r52299  
    33183318    }
    33193319
    3320     if (renderer()->style()->overflowX() == OMARQUEE && renderer()->style()->marqueeBehavior() != MNONE) {
     3320    if (renderer()->style()->overflowX() == OMARQUEE && renderer()->style()->marqueeBehavior() != MNONE && renderer()->isBox()) {
    33213321        if (!m_marquee)
    33223322            m_marquee = new RenderMarquee(this);
Note: See TracChangeset for help on using the changeset viewer.