Adds test for out-of-process iframes with display:none.

This test verifies that blink::WebRemoteFrameImpl::isIgnoredForHitTest
doesn't crash the renderer when a RemoteFrame is set to display:none.

BUG=582149

Review URL: https://codereview.chromium.org/1654273005

Cr-Commit-Position: refs/heads/master@{#373284}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index b0a74d63..2932648 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -712,6 +712,8 @@
     IPC_MESSAGE_HANDLER(ViewMsg_Move_ACK, OnRequestMoveAck)
     IPC_MESSAGE_HANDLER(ViewMsg_UpdateScreenRects, OnUpdateScreenRects)
     IPC_MESSAGE_HANDLER(ViewMsg_SetSurfaceIdNamespace, OnSetSurfaceIdNamespace)
+    IPC_MESSAGE_HANDLER(ViewMsg_WaitForNextFrameForTests,
+                        OnWaitNextFrameForTests)
 #if defined(OS_ANDROID)
     IPC_MESSAGE_HANDLER(InputMsg_ImeEventAck, OnImeEventAck)
     IPC_MESSAGE_HANDLER(ViewMsg_ShowImeIfNeeded, OnShowImeIfNeeded)
@@ -2290,4 +2292,9 @@
 }
 #endif  // defined(VIDEO_HOLE)
 
+void RenderWidget::OnWaitNextFrameForTests(int routing_id) {
+  QueueMessage(new ViewHostMsg_WaitForNextFrameForTests_ACK(routing_id),
+               MESSAGE_DELIVERY_POLICY_WITH_VISUAL_STATE);
+}
+
 }  // namespace content
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h
index 9197d97..3f083e7 100644
--- a/content/renderer/render_widget.h
+++ b/content/renderer/render_widget.h
@@ -553,6 +553,9 @@
   scoped_ptr<WebGraphicsContext3DCommandBufferImpl> CreateGraphicsContext3D(
       GpuChannelHost* gpu_channel_host);
 
+  // Sends an ACK to the browser process during the next compositor frame.
+  void OnWaitNextFrameForTests(int routing_id);
+
   // Routing ID that allows us to communicate to the parent browser process
   // RenderWidgetHost. When MSG_ROUTING_NONE, no messages may be sent.
   int32_t routing_id_;