Changeset 73276 in webkit


Ignore:
Timestamp:
Dec 3, 2010 11:18:09 AM (13 years ago)
Author:
tony@chromium.org
Message:

2010-12-03 Daniel Cheng <dcheng@chromium.org>

Reviewed by Tony Chang.

Dragging and dropping into an empty document crashes WebKit.
https://bugs.webkit.org/show_bug.cgi?id=48793

Remove the assert and update callers to check for a null return value.

Test: manual-tests/drop-in-empty-doc.html

  • manual-tests/drop-in-empty-doc.html: Added.
  • manual-tests/resources/drop-in-empty-doc.xhtml: Added.
  • page/DragController.cpp: (WebCore::elementUnderMouse): (WebCore::DragController::tryDocumentDrag): (WebCore::DragController::concludeEditDrag):
Location:
trunk/WebCore
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r73273 r73276  
     12010-12-03  Daniel Cheng  <dcheng@chromium.org>
     2
     3        Reviewed by Tony Chang.
     4
     5        Dragging and dropping into an empty document crashes WebKit.
     6        https://bugs.webkit.org/show_bug.cgi?id=48793
     7
     8        Remove the assert and update callers to check for a null return value.
     9
     10        Test: manual-tests/drop-in-empty-doc.html
     11
     12        * manual-tests/drop-in-empty-doc.html: Added.
     13        * manual-tests/resources/drop-in-empty-doc.xhtml: Added.
     14        * page/DragController.cpp:
     15        (WebCore::elementUnderMouse):
     16        (WebCore::DragController::tryDocumentDrag):
     17        (WebCore::DragController::concludeEditDrag):
     18
    1192010-12-03  Patrick Gansterer  <paroga@webkit.org>
    220
  • trunk/WebCore/page/DragController.cpp

    r71925 r73276  
    269269}
    270270
     271// This can return null if an empty document is loaded.
    271272static Element* elementUnderMouse(Document* documentUnderMouse, const IntPoint& p)
    272273{
     
    285286        n = n->shadowAncestorNode();
    286287
    287     ASSERT(n);
    288288    return static_cast<Element*>(n);
    289289}
     
    328328        IntPoint point = frameView->windowToContents(dragData->clientPosition());
    329329        Element* element = elementUnderMouse(m_documentUnderMouse.get(), point);
     330        if (!element)
     331            return false;
    330332        if (!asFileInput(element)) {
    331333            VisibleSelection dragCaret = m_documentUnderMouse->frame()->visiblePositionForPoint(point);
     
    387389    IntPoint point = m_documentUnderMouse->view()->windowToContents(dragData->clientPosition());
    388390    Element* element = elementUnderMouse(m_documentUnderMouse.get(), point);
     391    if (!element)
     392        return false;
    389393    Frame* innerFrame = element->ownerDocument()->frame();
    390394    ASSERT(innerFrame);
Note: See TracChangeset for help on using the changeset viewer.