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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_view_event_handler.h" 5 #include "content/browser/renderer_host/render_widget_host_view_event_handler.h"
6 6
7 #include "base/metrics/user_metrics_action.h" 7 #include "base/metrics/user_metrics_action.h"
8 #include "content/browser/renderer_host/input/touch_selection_controller_client_ aura.h" 8 #include "content/browser/renderer_host/input/touch_selection_controller_client_ aura.h"
9 #include "content/browser/renderer_host/overscroll_controller.h" 9 #include "content/browser/renderer_host/overscroll_controller.h"
10 #include "content/browser/renderer_host/render_view_host_delegate.h" 10 #include "content/browser/renderer_host/render_view_host_delegate.h"
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 // 2) Touch events are always routed. In the absence of a BrowserPlugin 843 // 2) Touch events are always routed. In the absence of a BrowserPlugin
844 // we expect the routing to always send the event to this view. If 844 // we expect the routing to always send the event to this view. If
845 // one or more BrowserPlugins are present, then the event may be targeted 845 // one or more BrowserPlugins are present, then the event may be targeted
846 // to one of them, or this view. This allows GuestViews to have access to 846 // to one of them, or this view. This allows GuestViews to have access to
847 // them while still forcing pinch-zoom to be handled by the top-level 847 // them while still forcing pinch-zoom to be handled by the top-level
848 // frame. TODO(wjmaclean): At present, this doesn't work for OOPIF, but 848 // frame. TODO(wjmaclean): At present, this doesn't work for OOPIF, but
849 // it should be a simple extension to modify RenderWidgetHostViewChildFrame 849 // it should be a simple extension to modify RenderWidgetHostViewChildFrame
850 // in a similar manner to RenderWidgetHostViewGuest. 850 // in a similar manner to RenderWidgetHostViewGuest.
851 bool result = host_->delegate() && host_->delegate()->GetInputEventRouter() && 851 bool result = host_->delegate() && host_->delegate()->GetInputEventRouter() &&
852 !disable_input_event_router_for_testing_; 852 !disable_input_event_router_for_testing_;
853
854 // Do not route events that are currently targeted to page popups such as
855 // <select> element drop-downs, since these cannot contain cross-process
856 // frames.
857 if (host_->delegate() && !host_->delegate()->IsWidgetForMainFrame(host_))
858 return false;
859
853 // ScrollEvents get transformed into MouseWheel events, and so are treated 860 // ScrollEvents get transformed into MouseWheel events, and so are treated
854 // the same as mouse events for routing purposes. 861 // the same as mouse events for routing purposes.
855 if (event->IsMouseEvent() || event->type() == ui::ET_SCROLL) 862 if (event->IsMouseEvent() || event->type() == ui::ET_SCROLL)
856 result = result && SiteIsolationPolicy::AreCrossProcessFramesPossible(); 863 result = result && SiteIsolationPolicy::AreCrossProcessFramesPossible();
857 return result; 864 return result;
858 } 865 }
859 866
860 void RenderWidgetHostViewEventHandler::ProcessMouseEvent( 867 void RenderWidgetHostViewEventHandler::ProcessMouseEvent(
861 const blink::WebMouseEvent& event, 868 const blink::WebMouseEvent& event,
862 const ui::LatencyInfo& latency) { 869 const ui::LatencyInfo& latency) {
863 host_->ForwardMouseEventWithLatencyInfo(event, latency); 870 host_->ForwardMouseEventWithLatencyInfo(event, latency);
864 } 871 }
865 872
866 void RenderWidgetHostViewEventHandler::ProcessMouseWheelEvent( 873 void RenderWidgetHostViewEventHandler::ProcessMouseWheelEvent(
867 const blink::WebMouseWheelEvent& event, 874 const blink::WebMouseWheelEvent& event,
868 const ui::LatencyInfo& latency) { 875 const ui::LatencyInfo& latency) {
869 host_->ForwardWheelEventWithLatencyInfo(event, latency); 876 host_->ForwardWheelEventWithLatencyInfo(event, latency);
870 } 877 }
871 878
872 void RenderWidgetHostViewEventHandler::ProcessTouchEvent( 879 void RenderWidgetHostViewEventHandler::ProcessTouchEvent(
873 const blink::WebTouchEvent& event, 880 const blink::WebTouchEvent& event,
874 const ui::LatencyInfo& latency) { 881 const ui::LatencyInfo& latency) {
875 host_->ForwardTouchEventWithLatencyInfo(event, latency); 882 host_->ForwardTouchEventWithLatencyInfo(event, latency);
876 } 883 }
877 884
878 } // namespace content 885 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698