Forward user gesture for cross-process postMessage.

This CL adds user gesture plumbing to cross-process postMessage, so
that when a frame sends a postMessage to a cross-process frame while
processing a user gesture, the target frame's onmessage handler can
utilize that user gesture as well.

For now, the plumbing is only for one bit, has_user_gesture, which is
restricted so that it can be forwarded at most once.  This prevents
unbounded forwarding of a user gesture via OOPIFs.

This solution is temporary and should eventually be superceded by one
of the following approaches:

- Browser process starts tracking user gestures and enforcing
  constraints like at-most-one-popup-per-gesture.  This plumbing
  should then pass a user gesture ID instead of a bool.

- UserActivation V2 ships (see https://crbug.com/696617).  This should
  allow us to remove this plumbing altogether.

Bug: 161068
Change-Id: Ib7de03bb51470f6ff924d2e178b26e80b597321d
Reviewed-on: https://chromium-review.googlesource.com/915101
Commit-Queue: Alex Moshchuk <[email protected]>
Reviewed-by: Ken Buchanan <[email protected]>
Reviewed-by: Rick Byers <[email protected]>
Reviewed-by: Mustaq Ahmed <[email protected]>
Cr-Commit-Position: refs/heads/master@{#540240}
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h
index 3e39b13..0f6489c2 100644
--- a/content/renderer/render_frame_proxy.h
+++ b/content/renderer/render_frame_proxy.h
@@ -178,7 +178,8 @@
   void ForwardPostMessage(blink::WebLocalFrame* sourceFrame,
                           blink::WebRemoteFrame* targetFrame,
                           blink::WebSecurityOrigin target,
-                          blink::WebDOMMessageEvent event) override;
+                          blink::WebDOMMessageEvent event,
+                          bool has_user_gesture) override;
   void Navigate(const blink::WebURLRequest& request,
                 bool should_replace_current_entry) override;
   void FrameRectsChanged(const blink::WebRect& local_frame_rect,