Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: third_party/WebKit/Source/core/input/EventHandler.cpp

Issue 2807123002: Fix the wrong non-element node handling in EventHanlder and MouseEventManager (Closed)
Patch Set: Addressed Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/input/EventHandler.cpp
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp
index 7e196a2cdbc7f9f2896c3c3e9b1ffa099a7b9fee..1a1c75a1de82d8ec76276e36b7fd86e931a8a389 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -652,10 +652,8 @@ WebInputEventResult EventHandler::HandleMousePressEvent(
}
mouse_event_manager_->SetClickCount(mouse_event.click_count);
- mouse_event_manager_->SetClickNode(
- mev.InnerNode()->IsTextNode()
- ? FlatTreeTraversal::Parent(*mev.InnerNode())
- : mev.InnerNode());
+ mouse_event_manager_->SetClickElement(
+ EventHandlingUtil::ParentElementIfNeeded(mev.InnerNode()));
if (!mouse_event.FromTouch())
frame_->Selection().SetCaretBlinkingSuspended(true);
@@ -960,9 +958,8 @@ WebInputEventResult EventHandler::HandleMouseReleaseEvent(
HitTestRequest request(hit_type);
MouseEventWithHitTestResults mev =
EventHandlingUtil::PerformMouseEventHitTest(frame_, request, mouse_event);
- Node* release_node = (mev.InnerNode() && mev.InnerNode()->IsTextNode())
- ? FlatTreeTraversal::Parent(*mev.InnerNode())
- : mev.InnerNode();
+ Element* mouse_release_target =
+ EventHandlingUtil::ParentElementIfNeeded(mev.InnerNode());
LocalFrame* subframe =
capturing_mouse_events_node_.Get()
? SubframeForTargetNode(capturing_mouse_events_node_.Get())
@@ -995,7 +992,9 @@ WebInputEventResult EventHandler::HandleMouseReleaseEvent(
mev.Event(), Vector<WebMouseEvent>());
WebInputEventResult click_event_result =
- mouse_event_manager_->DispatchMouseClickIfNeeded(mev, release_node);
+ mouse_release_target ? mouse_event_manager_->DispatchMouseClickIfNeeded(
+ mev, *mouse_release_target)
+ : WebInputEventResult::kNotHandled;
scroll_manager_->ClearResizeScrollableArea(false);

Powered by Google App Engine
This is Rietveld 408576698