Make RenderFrameProxy a WebRemoteFrameClient

Implement postMessageEvent(), which is nearly identical to
RenderFrameImpl::willCheckAndDispatchMessageEvent(). The most notable difference
is the void return value, as remote frames know that the MessageEvent must
be delievered cross-process.

This is step 2 of 3 in getting WebRemoteFrameClient up and running.

BUG=411066

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

Cr-Commit-Position: refs/heads/master@{#294009}
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h
index cd605fb6..8761f5e 100644
--- a/content/renderer/render_frame_proxy.h
+++ b/content/renderer/render_frame_proxy.h
@@ -11,8 +11,8 @@
 #include "ipc/ipc_listener.h"
 #include "ipc/ipc_sender.h"
 
-#include "third_party/WebKit/public/web/WebFrameClient.h"
 #include "third_party/WebKit/public/web/WebRemoteFrame.h"
+#include "third_party/WebKit/public/web/WebRemoteFrameClient.h"
 
 struct FrameMsg_BuffersSwapped_Params;
 struct FrameMsg_CompositorFrameSwapped_Params;
@@ -46,7 +46,7 @@
 class CONTENT_EXPORT RenderFrameProxy
     : public IPC::Listener,
       public IPC::Sender,
-      NON_EXPORTED_BASE(public blink::WebFrameClient) {
+      NON_EXPORTED_BASE(public blink::WebRemoteFrameClient) {
  public:
   // This method should be used to create a RenderFrameProxy, which will replace
   // an existing RenderFrame during its cross-process navigation from the
@@ -93,6 +93,13 @@
   RenderViewImpl* render_view() { return render_view_; }
   blink::WebRemoteFrame* web_frame() { return web_frame_; }
 
+  // blink::WebRemoteFrameClient implementation:
+  virtual void postMessageEvent(
+      blink::WebLocalFrame* sourceFrame,
+      blink::WebRemoteFrame* targetFrame,
+      blink::WebSecurityOrigin target,
+      blink::WebDOMMessageEvent event);
+
  private:
   RenderFrameProxy(int routing_id, int frame_routing_id);