RESOLVED FIXED 25050
[Qt] Crash when dragging and dropping WebKit icon from firefox into editable Qt WebView
https://bugs.webkit.org/show_bug.cgi?id=25050
Summary [Qt] Crash when dragging and dropping WebKit icon from firefox into editable ...
Erik L. Bunce
Reported 2009-04-04 15:24:17 PDT
I get a crash when dragging and dropping WebKit icon from firefox into editable Qt WebView. This was with Qt WebKit from SVN trunk r42167. Steps to reproduce (on Mac OS 10.5.6): 1) Bring up http:/www.webkit.org/ in Firefox 3.0.8. 2) Launch an app using Qt WebView 3) Get an editable frame, for example, using QtLauncher, enable editing by checking "Set Editable" from the "Edit" menu 4) Start a drag of the WebKit icon from the top-left of the http://www.webkit.org page, and drop it into the editable QWebView. 5) Receive the following crash: ASSERT: "!isEmpty()" in file /usr/local/Trolltech/Qt-4.5.0/lib/QtCore.framework/Versions/4/Headers/qlist.h, line 252 Program received signal SIGABRT, Aborted. 0x94e5ce42 in __kill () (gdb) bt #0 0x94e5ce42 in __kill () #1 0x94e5ce34 in kill$UNIX2003 () #2 0x94ecf23a in raise () #3 0x94edb679 in abort () #4 0x0027b3b5 in qt_message_output () #5 0x0027b4a9 in qFatal () #6 0x0027b5b0 in qt_assert () #7 0x04836188 in QList<QUrl>::first (this=0xbfffdac4) at qlist.h:252 #8 0x04835a2f in WebCore::DragData::asURL (this=0xbfffde78, title=0x0) at ../../../WebCore/platform/qt/DragDataQt.cpp:129 #9 0x04835b76 in WebCore::DragData::asPlainText (this=0xbfffde78) at ../../../WebCore/platform/qt/DragDataQt.cpp:95 #10 0x04607a45 in documentFragmentFromDragData (dragData=0xbfffde78, context=@0xbfffdcb0, allowPlainText=true, chosePlainText=@0xbfffdc6b) at ../../../WebCore/page/DragController.cpp:123 #11 0x0460a371 in WebCore::DragController::concludeEditDrag (this=0x587ad0, dragData=0xbfffde78) at ../../../WebCore/page/DragController.cpp:396 #12 0x0460aee8 in WebCore::DragController::performDrag (this=0x587ad0, dragData=0xbfffde78) at ../../../WebCore/page/DragController.cpp:192 #13 0x0486365e in QWebPagePrivate::dropEvent (this=0x587560, ev=0xbfffe438) at ../../../WebKit/qt/Api/qwebpage.cpp:892 #14 0x0486aa71 in QWebPage::event (this=0x587250, ev=0xbfffe438) at ../../../WebKit/qt/Api/qwebpage.cpp:2070 #15 0x0486df12 in QWebView::dropEvent (this=0x570f60, ev=0xbfffe438) at ../../../WebKit/qt/Api/qwebview.cpp:850 #16 0x000141c5 in WebView::dropEvent (this=0x570f60, event=0xbfffe438) at HtmlEditMainWindow.cpp:180 #17 0x00b815ca in QWidget::event () #18 0x0486d88c in QWebView::event (this=0x570f60, e=0xbfffe438) at ../../../WebKit/qt/Api/qwebview.cpp:589 #19 0x00b3538f in QApplicationPrivate::notify_helper () #20 0x00b3c629 in QApplication::notify () #21 0x00374ab2 in QCoreApplication::notifyInternal () #22 0x00ac3c9a in QWidgetPrivate::qt_mac_dnd_event () #23 0x00ad8756 in QWidgetPrivate::qt_widget_event () #24 0x93049143 in DispatchEventToHandlers () #25 0x9304857d in SendEventToEventTargetInternal () #26 0x930483e2 in SendEventToEventTargetWithOptions () #27 0x931cf520 in SendControlDefDragReceive () #28 0x931cf422 in ControlDragReceiveHandler () #29 0x931cf397 in CarbonReceiveMapper () #30 0x94d421b0 in DoDropMessage () #31 0x94d41c11 in CoreDragMessageHandler () #32 0x93fe8d21 in __CFMessagePortPerform () #33 0x9400a8e8 in CFRunLoopRunSpecific () #34 0x9400acd8 in CFRunLoopRunInMode () #35 0x00ade0b0 in QEventDispatcherMac::processEvents () #36 0x00374061 in QEventLoop::processEvents () #37 0x0037420d in QEventLoop::exec () #38 0x0037806e in QCoreApplication::exec () #39 0x000146e3 in main (argc=1, argv=0xbffff49c) at main.cpp:68 (gdb) For some reason the platform drag data returns an empty list of urls, which DragData::asUrl() is attempting to return the first() entry of without checking that it exists.
Attachments
Fix an assert failure when dropping an 'empty' text/uri-list on a QWebView. (1.29 KB, patch)
2009-04-04 20:45 PDT, Erik L. Bunce
hausmann: review+
Erik L. Bunce
Comment 1 2009-04-04 20:45:37 PDT
Created attachment 29260 [details] Fix an assert failure when dropping an 'empty' text/uri-list on a QWebView.
Simon Hausmann
Comment 2 2009-04-05 10:26:48 PDT
Thanks! landed in r42234
Note You need to log in before you can comment on or make changes to this bug.