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