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); |
} |
} |
} |