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 f00420c1ee93afcd5c87c995fc61dc5a48e405c8..578464f2339af02ee4c3d43e606f671c8aca5e6b 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) |