Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_mac.mm |
| diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm |
| index 70f539dddb9144897e1d291f250d34794dc5c80e..757cdf6cb56c918cfab6186e2eef698918085d84 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
| +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
| @@ -51,6 +51,7 @@ |
| #include "content/common/edit_command.h" |
| #include "content/common/gpu/gpu_messages.h" |
| #include "content/common/input_messages.h" |
| +#include "content/common/site_isolation_policy.h" |
| #include "content/common/view_messages.h" |
| #include "content/common/webplugin_geometry.h" |
| #include "content/public/browser/browser_context.h" |
| @@ -1610,6 +1611,17 @@ uint32_t RenderWidgetHostViewMac::SurfaceIdNamespaceAtPoint( |
| return cc::SurfaceIdAllocator::NamespaceForId(id); |
| } |
| +bool RenderWidgetHostViewMac::ShouldRouteEvent( |
| + const WebInputEvent& event) const { |
| + bool result = render_widget_host_->delegate() && |
| + render_widget_host_->delegate()->GetInputEventRouter(); |
| + if (WebInputEvent::isMouseEventType(event.type) || |
| + event.type == WebInputEvent::MouseWheel) { |
| + result = result && SiteIsolationPolicy::AreCrossProcessFramesPossible(); |
|
Charlie Reis
2015/11/30 18:09:12
Same concerns as in RWHVAura.
wjmaclean
2015/12/10 16:09:07
This will only (at present) be called for Mouse/Wh
Charlie Reis
2015/12/10 21:58:14
This still needs a comment.
|
| + } |
| + return result; |
| +} |
| + |
| void RenderWidgetHostViewMac::ProcessMouseEvent( |
| const blink::WebMouseEvent& event) { |
| render_widget_host_->ForwardMouseEvent(event); |
| @@ -1956,14 +1968,12 @@ void RenderWidgetHostViewMac::OnDisplayMetricsChanged( |
| WebMouseEvent enterEvent = WebMouseEventBuilder::Build(theEvent, self); |
| enterEvent.type = WebInputEvent::MouseMove; |
| enterEvent.button = WebMouseEvent::ButtonNone; |
| - if (renderWidgetHostView_->render_widget_host_->delegate() && |
| - renderWidgetHostView_->render_widget_host_->delegate() |
| - ->GetInputEventRouter()) { |
| + if (renderWidgetHostView_->ShouldRouteEvent(enterEvent)) { |
| renderWidgetHostView_->render_widget_host_->delegate() |
| ->GetInputEventRouter() |
| ->RouteMouseEvent(renderWidgetHostView_.get(), &enterEvent); |
| } else { |
| - renderWidgetHostView_->ForwardMouseEvent(enterEvent); |
| + renderWidgetHostView_->ProcessMouseEvent(enterEvent); |
| } |
| } |
| } |
| @@ -1993,14 +2003,12 @@ void RenderWidgetHostViewMac::OnDisplayMetricsChanged( |
| } |
| WebMouseEvent event = WebMouseEventBuilder::Build(theEvent, self); |
| - if (renderWidgetHostView_->render_widget_host_->delegate() && |
| - renderWidgetHostView_->render_widget_host_->delegate() |
| - ->GetInputEventRouter()) { |
| + if (renderWidgetHostView_->ShouldRouteEvent(event)) { |
| renderWidgetHostView_->render_widget_host_->delegate() |
| ->GetInputEventRouter() |
| ->RouteMouseEvent(renderWidgetHostView_.get(), &event); |
| } else { |
| - renderWidgetHostView_->ForwardMouseEvent(event); |
| + renderWidgetHostView_->ProcessMouseEvent(event); |
| } |
| } |
| @@ -2502,14 +2510,12 @@ void RenderWidgetHostViewMac::OnDisplayMetricsChanged( |
| WebMouseWheelEvent webEvent = WebMouseWheelEventBuilder::Build( |
| event, self, canRubberbandLeft, canRubberbandRight); |
| webEvent.railsMode = mouseWheelFilter_.UpdateRailsMode(webEvent); |
| - if (renderWidgetHostView_->render_widget_host_->delegate() && |
| - renderWidgetHostView_->render_widget_host_->delegate() |
| - ->GetInputEventRouter()) { |
| + if (renderWidgetHostView_->ShouldRouteEvent(webEvent)) { |
| renderWidgetHostView_->render_widget_host_->delegate() |
| ->GetInputEventRouter() |
| ->RouteMouseWheelEvent(renderWidgetHostView_.get(), &webEvent); |
| } else { |
| - renderWidgetHostView_->render_widget_host_->ForwardWheelEvent(webEvent); |
| + renderWidgetHostView_->ProcessMouseWheelEvent(webEvent); |
| } |
| } |
| } |