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

Unified Diff: content/browser/renderer_host/render_widget_host_view_event_handler.cc

Issue 2770923002: Prevent browser-side hit testing when page popup is selected (Closed)
Patch Set: Changed the test Created 3 years, 9 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: content/browser/renderer_host/render_widget_host_view_event_handler.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
index 628aa29d6ea20807c7e3920b604a51fed45242a7..f19b0c30e3d207a143a28745f3ab82a567322a9b 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -850,6 +850,13 @@ bool RenderWidgetHostViewEventHandler::ShouldRouteEvent(
// in a similar manner to RenderWidgetHostViewGuest.
bool result = host_->delegate() && host_->delegate()->GetInputEventRouter() &&
!disable_input_event_router_for_testing_;
+
+ // Do not route events that are currently targeted to page popups such as
+ // <select> element drop-downs, since these cannot contain cross-process
+ // frames.
+ if (host_->delegate() && !host_->delegate()->IsWidgetForMainFrame(host_))
+ return false;
+
// ScrollEvents get transformed into MouseWheel events, and so are treated
// the same as mouse events for routing purposes.
if (event->IsMouseEvent() || event->type() == ui::ET_SCROLL)

Powered by Google App Engine
This is Rietveld 408576698