| 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 be3ae940b51939837a448e06c5803f000a5ae32f..3901ead80763d6e3ca7532560e014bdb94a5ac0a 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| @@ -52,6 +52,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"
|
| @@ -1607,6 +1608,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();
|
| + }
|
| + return result;
|
| +}
|
| +
|
| void RenderWidgetHostViewMac::ProcessMouseEvent(
|
| const blink::WebMouseEvent& event) {
|
| render_widget_host_->ForwardMouseEvent(event);
|
| @@ -1953,14 +1965,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);
|
| }
|
| }
|
| }
|
| @@ -1990,14 +2000,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);
|
| }
|
| }
|
|
|
| @@ -2501,14 +2509,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);
|
| }
|
| }
|
| }
|
|
|