From 1cbb97de233247f75d04c7303e2aa43e8b864e9f Mon Sep 17 00:00:00 2001 From: "sullivan@apple.com" Date: Wed, 27 May 2009 17:00:40 +0000 Subject: [PATCH] 2009-05-27 John Sullivan fixed repro crash in WebCore::DragController::dragExited dropping bookmarks (at least) over Top Sites (at least) Reviewed by Kevin Decker * page/DragController.cpp: (WebCore::DragController::dragExited): nil check m_documentUnderMouse and take the "local file" case if it's nil git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44189 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- WebCore/ChangeLog | 11 +++++++++++ WebCore/page/DragController.cpp | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog index 4b93e8d7b16..5c1912b3ee9 100644 --- a/WebCore/ChangeLog +++ b/WebCore/ChangeLog @@ -1,3 +1,14 @@ +2009-05-27 John Sullivan + + fixed repro crash in WebCore::DragController::dragExited dropping + bookmarks (at least) over Top Sites (at least) + + Reviewed by Kevin Decker + + * page/DragController.cpp: + (WebCore::DragController::dragExited): + nil check m_documentUnderMouse and take the "local file" case if it's nil + 2009-05-27 Fridrich Strba Reviewed by Gustavo Noronha. diff --git a/WebCore/page/DragController.cpp b/WebCore/page/DragController.cpp index 72343973351..e1b5ea7625a 100644 --- a/WebCore/page/DragController.cpp +++ b/WebCore/page/DragController.cpp @@ -155,7 +155,7 @@ void DragController::dragExited(DragData* dragData) Frame* mainFrame = m_page->mainFrame(); if (RefPtr v = mainFrame->view()) { - ClipboardAccessPolicy policy = m_documentUnderMouse->securityOrigin()->isLocal() ? ClipboardReadable : ClipboardTypesReadable; + ClipboardAccessPolicy policy = (!m_documentUnderMouse || m_documentUnderMouse->securityOrigin()->isLocal()) ? ClipboardReadable : ClipboardTypesReadable; RefPtr clipboard = dragData->createClipboard(policy); clipboard->setSourceOperation(dragData->draggingSourceOperationMask()); mainFrame->eventHandler()->cancelDragAndDrop(createMouseEvent(dragData), clipboard.get()); -- GitLab