| 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 6fda5e197cd16aa034611560555384fc608fe4ea..29fd891e02b785c3c46e54767a046514fef71dd5 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
|
| @@ -54,6 +54,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,18 @@ uint32_t RenderWidgetHostViewMac::SurfaceIdNamespaceAtPoint(
|
| return cc::SurfaceIdAllocator::NamespaceForId(id);
|
| }
|
|
|
| +bool RenderWidgetHostViewMac::ShouldRouteEvent(
|
| + const WebInputEvent& event) const {
|
| + // See also RenderWidgetHostViewAura::ShouldRouteEvent.
|
| + // TODO(wjmaclean): Update this function if RenderWidgetHostViewMac implements
|
| + // OnTouchEvent(), to match what we are doing in RenderWidgetHostViewAura.
|
| + DCHECK(WebInputEvent::isMouseEventType(event.type) ||
|
| + event.type == WebInputEvent::MouseWheel);
|
| + return render_widget_host_->delegate() &&
|
| + render_widget_host_->delegate()->GetInputEventRouter() &&
|
| + SiteIsolationPolicy::AreCrossProcessFramesPossible();
|
| +}
|
| +
|
| void RenderWidgetHostViewMac::ProcessMouseEvent(
|
| const blink::WebMouseEvent& event) {
|
| render_widget_host_->ForwardMouseEvent(event);
|
| @@ -1956,14 +1969,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 +2004,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);
|
| }
|
| }
|
|
|
| @@ -2504,14 +2513,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);
|
| }
|
| }
|
| }
|
|
|