Index: third_party/WebKit/Source/web/WebFrameWidgetBase.cpp |
diff --git a/third_party/WebKit/Source/web/WebFrameWidgetBase.cpp b/third_party/WebKit/Source/web/WebFrameWidgetBase.cpp |
index d6f1367719f4c65046900512c707bccd2010a79b..a5a1d8c5448e3664b158ba65599bd3b64ebd5757 100644 |
--- a/third_party/WebKit/Source/web/WebFrameWidgetBase.cpp |
+++ b/third_party/WebKit/Source/web/WebFrameWidgetBase.cpp |
@@ -80,7 +80,12 @@ void WebFrameWidgetBase::DragTargetDragLeave(const WebPoint& point_in_viewport, |
const WebPoint& screen_point) { |
DCHECK(current_drag_data_); |
- if (IgnoreInputEvents()) { |
+ // TODO(paulmeyer): It shouldn't be possible for |m_currentDragData| to be |
+ // null here, but this is somehow happening (rarely). This suggests that in |
+ // some cases drag-leave is happening before drag-enter, which should be |
+ // impossible. This needs to be investigated further. Once fixed, the extra |
+ // check for |!m_currentDragData| should be removed. (crbug.com/671152) |
+ if (IgnoreInputEvents() || !current_drag_data_) { |
CancelDrag(); |
return; |
} |