Commit 6c4895ce authored by Dave Tapuska's avatar Dave Tapuska Committed by Commit Bot

Push HandleMouseLeave into base widget implementation.

HandleMouseLeave can be a common implementation, this fixes a TODO
in the OOPIF case for clearing the target URL.

BUG=1097816

Change-Id: I41c7e6d6d022360f5f964e005485ae80e9871d9a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2543123
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: default avatardanakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828726}
parent b4e5b08b
...@@ -623,7 +623,7 @@ WebInputEventResult WebFrameWidgetBase::HandleKeyEvent( ...@@ -623,7 +623,7 @@ WebInputEventResult WebFrameWidgetBase::HandleKeyEvent(
return WebInputEventResult::kNotHandled; return WebInputEventResult::kNotHandled;
} }
void WebFrameWidgetBase::HandleMouseDown(LocalFrame& main_frame, void WebFrameWidgetBase::HandleMouseDown(LocalFrame& local_root,
const WebMouseEvent& event) { const WebMouseEvent& event) {
WebViewImpl* view_impl = View(); WebViewImpl* view_impl = View();
// If there is a popup open, close it as the user is clicking on the page // If there is a popup open, close it as the user is clicking on the page
...@@ -659,7 +659,7 @@ void WebFrameWidgetBase::HandleMouseDown(LocalFrame& main_frame, ...@@ -659,7 +659,7 @@ void WebFrameWidgetBase::HandleMouseDown(LocalFrame& main_frame,
} }
} }
PageWidgetEventHandler::HandleMouseDown(main_frame, event); PageWidgetEventHandler::HandleMouseDown(local_root, event);
// PageWidgetEventHandler may have detached the frame. // PageWidgetEventHandler may have detached the frame.
if (!LocalRootImpl()) if (!LocalRootImpl())
return; return;
...@@ -685,6 +685,13 @@ void WebFrameWidgetBase::HandleMouseDown(LocalFrame& main_frame, ...@@ -685,6 +685,13 @@ void WebFrameWidgetBase::HandleMouseDown(LocalFrame& main_frame,
} }
} }
void WebFrameWidgetBase::HandleMouseLeave(LocalFrame& local_root,
const WebMouseEvent& event) {
View()->SetMouseOverURL(WebURL());
PageWidgetEventHandler::HandleMouseLeave(local_root, event);
// PageWidgetEventHandler may have detached the frame.
}
void WebFrameWidgetBase::MouseContextMenu(const WebMouseEvent& event) { void WebFrameWidgetBase::MouseContextMenu(const WebMouseEvent& event) {
GetPage()->GetContextMenuController().ClearContextMenu(); GetPage()->GetContextMenuController().ClearContextMenu();
...@@ -719,10 +726,10 @@ void WebFrameWidgetBase::MouseContextMenu(const WebMouseEvent& event) { ...@@ -719,10 +726,10 @@ void WebFrameWidgetBase::MouseContextMenu(const WebMouseEvent& event) {
} }
WebInputEventResult WebFrameWidgetBase::HandleMouseUp( WebInputEventResult WebFrameWidgetBase::HandleMouseUp(
LocalFrame& main_frame, LocalFrame& local_root,
const WebMouseEvent& event) { const WebMouseEvent& event) {
WebInputEventResult result = WebInputEventResult result =
PageWidgetEventHandler::HandleMouseUp(main_frame, event); PageWidgetEventHandler::HandleMouseUp(local_root, event);
// PageWidgetEventHandler may have detached the frame. // PageWidgetEventHandler may have detached the frame.
if (!LocalRootImpl()) if (!LocalRootImpl())
return result; return result;
......
...@@ -768,6 +768,7 @@ class CORE_EXPORT WebFrameWidgetBase ...@@ -768,6 +768,7 @@ class CORE_EXPORT WebFrameWidgetBase
// PageWidgetEventHandler methods: // PageWidgetEventHandler methods:
WebInputEventResult HandleKeyEvent(const WebKeyboardEvent&) override; WebInputEventResult HandleKeyEvent(const WebKeyboardEvent&) override;
void HandleMouseDown(LocalFrame&, const WebMouseEvent&) override; void HandleMouseDown(LocalFrame&, const WebMouseEvent&) override;
void HandleMouseLeave(LocalFrame&, const WebMouseEvent&) override;
WebInputEventResult HandleMouseUp(LocalFrame&, const WebMouseEvent&) override; WebInputEventResult HandleMouseUp(LocalFrame&, const WebMouseEvent&) override;
WebInputEventResult HandleMouseWheel(LocalFrame&, WebInputEventResult HandleMouseWheel(LocalFrame&,
const WebMouseWheelEvent&) override; const WebMouseWheelEvent&) override;
......
...@@ -380,13 +380,6 @@ void WebFrameWidgetImpl::FocusChanged(bool enable) { ...@@ -380,13 +380,6 @@ void WebFrameWidgetImpl::FocusChanged(bool enable) {
} }
} }
void WebFrameWidgetImpl::HandleMouseLeave(LocalFrame& main_frame,
const WebMouseEvent& event) {
// FIXME: WebWidget doesn't have the method below.
// m_client->setMouseOverURL(WebURL());
PageWidgetEventHandler::HandleMouseLeave(main_frame, event);
}
WebInputEventResult WebFrameWidgetImpl::HandleGestureEvent( WebInputEventResult WebFrameWidgetImpl::HandleGestureEvent(
const WebGestureEvent& event) { const WebGestureEvent& event) {
DCHECK(Client()); DCHECK(Client());
......
...@@ -56,10 +56,8 @@ class Layer; ...@@ -56,10 +56,8 @@ class Layer;
namespace blink { namespace blink {
class Element; class Element;
class LocalFrame;
class PaintLayerCompositor; class PaintLayerCompositor;
class WebFrameWidget; class WebFrameWidget;
class WebMouseEvent;
class WebFrameWidgetImpl; class WebFrameWidgetImpl;
// Implements WebFrameWidget for a child local root frame (OOPIF). This object // Implements WebFrameWidget for a child local root frame (OOPIF). This object
...@@ -115,7 +113,6 @@ class WebFrameWidgetImpl final : public WebFrameWidgetBase { ...@@ -115,7 +113,6 @@ class WebFrameWidgetImpl final : public WebFrameWidgetBase {
friend class WebFrameWidget; // For WebFrameWidget::create. friend class WebFrameWidget; // For WebFrameWidget::create.
// PageWidgetEventHandler functions // PageWidgetEventHandler functions
void HandleMouseLeave(LocalFrame&, const WebMouseEvent&) override;
WebInputEventResult HandleGestureEvent(const WebGestureEvent&) override; WebInputEventResult HandleGestureEvent(const WebGestureEvent&) override;
// Finds the parameters required for scrolling the focused editable |element| // Finds the parameters required for scrolling the focused editable |element|
......
...@@ -124,12 +124,6 @@ void WebViewFrameWidget::SetRootLayer(scoped_refptr<cc::Layer> root_layer) { ...@@ -124,12 +124,6 @@ void WebViewFrameWidget::SetRootLayer(scoped_refptr<cc::Layer> root_layer) {
web_view_->DidChangeRootLayer(!!root_layer); web_view_->DidChangeRootLayer(!!root_layer);
} }
void WebViewFrameWidget::HandleMouseLeave(LocalFrame& main_frame,
const WebMouseEvent& event) {
web_view_->SetMouseOverURL(WebURL());
PageWidgetEventHandler::HandleMouseLeave(main_frame, event);
}
WebInputEventResult WebViewFrameWidget::HandleGestureEvent( WebInputEventResult WebViewFrameWidget::HandleGestureEvent(
const WebGestureEvent& event) { const WebGestureEvent& event) {
if (!web_view_->Client() || !web_view_->Client()->CanHandleGestureEvent()) { if (!web_view_->Client() || !web_view_->Client()->CanHandleGestureEvent()) {
......
...@@ -85,7 +85,6 @@ class CORE_EXPORT WebViewFrameWidget : public WebFrameWidgetBase { ...@@ -85,7 +85,6 @@ class CORE_EXPORT WebViewFrameWidget : public WebFrameWidgetBase {
private: private:
// PageWidgetEventHandler overrides: // PageWidgetEventHandler overrides:
void HandleMouseLeave(LocalFrame&, const WebMouseEvent&) override;
WebInputEventResult HandleGestureEvent(const WebGestureEvent&) override; WebInputEventResult HandleGestureEvent(const WebGestureEvent&) override;
void SetWindowRectSynchronously(const gfx::Rect& new_window_rect); void SetWindowRectSynchronously(const gfx::Rect& new_window_rect);
......
...@@ -211,60 +211,60 @@ WebInputEventResult PageWidgetDelegate::HandleInputEvent( ...@@ -211,60 +211,60 @@ WebInputEventResult PageWidgetDelegate::HandleInputEvent(
// Default handlers for PageWidgetEventHandler // Default handlers for PageWidgetEventHandler
void PageWidgetEventHandler::HandleMouseMove( void PageWidgetEventHandler::HandleMouseMove(
LocalFrame& main_frame, LocalFrame& local_root,
const WebMouseEvent& event, const WebMouseEvent& event,
const std::vector<std::unique_ptr<WebInputEvent>>& coalesced_events, const std::vector<std::unique_ptr<WebInputEvent>>& coalesced_events,
const std::vector<std::unique_ptr<WebInputEvent>>& predicted_events) { const std::vector<std::unique_ptr<WebInputEvent>>& predicted_events) {
WebMouseEvent transformed_event = WebMouseEvent transformed_event =
TransformWebMouseEvent(main_frame.View(), event); TransformWebMouseEvent(local_root.View(), event);
main_frame.GetEventHandler().HandleMouseMoveEvent( local_root.GetEventHandler().HandleMouseMoveEvent(
transformed_event, transformed_event,
TransformWebMouseEventVector(main_frame.View(), coalesced_events), TransformWebMouseEventVector(local_root.View(), coalesced_events),
TransformWebMouseEventVector(main_frame.View(), predicted_events)); TransformWebMouseEventVector(local_root.View(), predicted_events));
} }
void PageWidgetEventHandler::HandleMouseLeave(LocalFrame& main_frame, void PageWidgetEventHandler::HandleMouseLeave(LocalFrame& local_root,
const WebMouseEvent& event) { const WebMouseEvent& event) {
WebMouseEvent transformed_event = WebMouseEvent transformed_event =
TransformWebMouseEvent(main_frame.View(), event); TransformWebMouseEvent(local_root.View(), event);
main_frame.GetEventHandler().HandleMouseLeaveEvent(transformed_event); local_root.GetEventHandler().HandleMouseLeaveEvent(transformed_event);
} }
void PageWidgetEventHandler::HandleMouseDown(LocalFrame& main_frame, void PageWidgetEventHandler::HandleMouseDown(LocalFrame& local_root,
const WebMouseEvent& event) { const WebMouseEvent& event) {
WebMouseEvent transformed_event = WebMouseEvent transformed_event =
TransformWebMouseEvent(main_frame.View(), event); TransformWebMouseEvent(local_root.View(), event);
main_frame.GetEventHandler().HandleMousePressEvent(transformed_event); local_root.GetEventHandler().HandleMousePressEvent(transformed_event);
} }
WebInputEventResult PageWidgetEventHandler::HandleMouseUp( WebInputEventResult PageWidgetEventHandler::HandleMouseUp(
LocalFrame& main_frame, LocalFrame& local_root,
const WebMouseEvent& event) { const WebMouseEvent& event) {
WebMouseEvent transformed_event = WebMouseEvent transformed_event =
TransformWebMouseEvent(main_frame.View(), event); TransformWebMouseEvent(local_root.View(), event);
return main_frame.GetEventHandler().HandleMouseReleaseEvent( return local_root.GetEventHandler().HandleMouseReleaseEvent(
transformed_event); transformed_event);
} }
WebInputEventResult PageWidgetEventHandler::HandleMouseWheel( WebInputEventResult PageWidgetEventHandler::HandleMouseWheel(
LocalFrame& frame, LocalFrame& local_root,
const WebMouseWheelEvent& event) { const WebMouseWheelEvent& event) {
WebMouseWheelEvent transformed_event = WebMouseWheelEvent transformed_event =
TransformWebMouseWheelEvent(frame.View(), event); TransformWebMouseWheelEvent(local_root.View(), event);
return frame.GetEventHandler().HandleWheelEvent(transformed_event); return local_root.GetEventHandler().HandleWheelEvent(transformed_event);
} }
WebInputEventResult PageWidgetEventHandler::HandlePointerEvent( WebInputEventResult PageWidgetEventHandler::HandlePointerEvent(
LocalFrame& main_frame, LocalFrame& local_root,
const WebPointerEvent& event, const WebPointerEvent& event,
const std::vector<std::unique_ptr<WebInputEvent>>& coalesced_events, const std::vector<std::unique_ptr<WebInputEvent>>& coalesced_events,
const std::vector<std::unique_ptr<WebInputEvent>>& predicted_events) { const std::vector<std::unique_ptr<WebInputEvent>>& predicted_events) {
WebPointerEvent transformed_event = WebPointerEvent transformed_event =
TransformWebPointerEvent(main_frame.View(), event); TransformWebPointerEvent(local_root.View(), event);
return main_frame.GetEventHandler().HandlePointerEvent( return local_root.GetEventHandler().HandlePointerEvent(
transformed_event, transformed_event,
TransformWebPointerEventVector(main_frame.View(), coalesced_events), TransformWebPointerEventVector(local_root.View(), coalesced_events),
TransformWebPointerEventVector(main_frame.View(), predicted_events)); TransformWebPointerEventVector(local_root.View(), predicted_events));
} }
} // namespace blink } // namespace blink
...@@ -53,11 +53,11 @@ class CORE_EXPORT PageWidgetEventHandler { ...@@ -53,11 +53,11 @@ class CORE_EXPORT PageWidgetEventHandler {
const WebMouseEvent&, const WebMouseEvent&,
const std::vector<std::unique_ptr<WebInputEvent>>&, const std::vector<std::unique_ptr<WebInputEvent>>&,
const std::vector<std::unique_ptr<WebInputEvent>>&); const std::vector<std::unique_ptr<WebInputEvent>>&);
virtual void HandleMouseLeave(LocalFrame& main_frame, const WebMouseEvent&); virtual void HandleMouseLeave(LocalFrame& local_root, const WebMouseEvent&);
virtual void HandleMouseDown(LocalFrame& main_frame, const WebMouseEvent&); virtual void HandleMouseDown(LocalFrame& local_root, const WebMouseEvent&);
virtual WebInputEventResult HandleMouseUp(LocalFrame& main_frame, virtual WebInputEventResult HandleMouseUp(LocalFrame& local_root,
const WebMouseEvent&); const WebMouseEvent&);
virtual WebInputEventResult HandleMouseWheel(LocalFrame& main_frame, virtual WebInputEventResult HandleMouseWheel(LocalFrame& local_root,
const WebMouseWheelEvent&); const WebMouseWheelEvent&);
virtual WebInputEventResult HandleKeyEvent(const WebKeyboardEvent&) = 0; virtual WebInputEventResult HandleKeyEvent(const WebKeyboardEvent&) = 0;
virtual WebInputEventResult HandleCharEvent(const WebKeyboardEvent&) = 0; virtual WebInputEventResult HandleCharEvent(const WebKeyboardEvent&) = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment