Changeset 29010 in webkit


Ignore:
Timestamp:
Dec 27, 2007 7:22:42 PM (16 years ago)
Author:
mitz@apple.com
Message:

WebCore:

Reviewed by Oliver Hunt.

Test: fast/layers/resize-layer-deletion-crash.html

The event handler has only a weak reference to the layer that is
currently in resize mode, so it is the layer's responsibility to let
the event handler know if it has been destroyed while in that mode.

  • page/EventHandler.cpp: (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets m_resizeLayer to 0.
  • page/EventHandler.h:
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::~RenderLayer): Added a call to EventHandler::resizeLayerDestroyed() if the layer is in resize mode.

LayoutTests:

Reviewed by Oliver Hunt.

  • fast/layers/resize-layer-deletion-crash-expected.txt: Added.
  • fast/layers/resize-layer-deletion-crash.html: Added.
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r29009 r29010  
     12007-12-27  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        - test for http://bugs.webkit.org/show_bug.cgi?id=16603
     6          <rdar://problem/5664199> Crash when resizing text field
     7
     8        * fast/layers/resize-layer-deletion-crash-expected.txt: Added.
     9        * fast/layers/resize-layer-deletion-crash.html: Added.
     10
    1112007-12-27  Sam Weinig  <sam@webkit.org>
    212
  • trunk/WebCore/ChangeLog

    r29008 r29010  
     12007-12-27  Dan Bernstein  <mitz@apple.com>
     2
     3        Reviewed by Oliver Hunt.
     4
     5        - fix http://bugs.webkit.org/show_bug.cgi?id=16603
     6          <rdar://problem/5664199> Crash when resizing text field
     7
     8        Test: fast/layers/resize-layer-deletion-crash.html
     9
     10        The event handler has only a weak reference to the layer that is
     11        currently in resize mode, so it is the layer's responsibility to let
     12        the event handler know if it has been destroyed while in that mode.
     13
     14        * page/EventHandler.cpp:
     15        (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
     16        m_resizeLayer to 0.
     17        * page/EventHandler.h:
     18        * rendering/RenderLayer.cpp:
     19        (WebCore::RenderLayer::~RenderLayer): Added a call to
     20        EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
     21
    1222007-12-27  Collin Jackson  <webkit@collinjackson.com>
    223
  • trunk/WebCore/page/EventHandler.cpp

    r28888 r29010  
    14381438}
    14391439
     1440void EventHandler::resizeLayerDestroyed()
     1441{
     1442    ASSERT(m_resizeLayer);
     1443    m_resizeLayer = 0;
     1444}
     1445
    14401446void EventHandler::hoverTimerFired(Timer<EventHandler>*)
    14411447{
  • trunk/WebCore/page/EventHandler.h

    r28770 r29010  
    109109    void setResizingFrameSet(HTMLFrameSetElement*);
    110110
     111    void resizeLayerDestroyed();
     112
    111113    IntPoint currentMousePosition() const;
    112114
  • trunk/WebCore/rendering/RenderLayer.cpp

    r29007 r29010  
    161161RenderLayer::~RenderLayer()
    162162{
     163    if (inResizeMode()) {
     164        if (Frame* frame = renderer()->document()->frame())
     165            frame->eventHandler()->resizeLayerDestroyed();
     166    }
     167
    163168    destroyScrollbar(HorizontalScrollbar);
    164169    destroyScrollbar(VerticalScrollbar);
Note: See TracChangeset for help on using the changeset viewer.