chromeos: refactor MusEmbeddedFrame into its own file

And makes MusEmbeddedFrame talk to a delegate rather than directly to
RenderFrameProxy. BrowserPlugin is going to use this class, hence
refactoring to make it easy to adapt to both.

BUG=755440
TEST=none

Change-Id: Ica1fe8971e0f11b9174771b857aec5d679d8a3e6
Reviewed-on: https://chromium-review.googlesource.com/729054
Commit-Queue: Scott Violet <[email protected]>
Reviewed-by: Ken Buchanan <[email protected]>
Cr-Commit-Position: refs/heads/master@{#510590}
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h
index 769d541..69a4b4ae 100644
--- a/content/renderer/render_frame_proxy.h
+++ b/content/renderer/render_frame_proxy.h
@@ -18,6 +18,10 @@
 #include "third_party/WebKit/public/web/WebRemoteFrameClient.h"
 #include "url/origin.h"
 
+#if defined(USE_AURA)
+#include "content/renderer/mus/mus_embedded_frame_delegate.h"
+#endif
+
 namespace blink {
 struct WebRect;
 }
@@ -64,6 +68,9 @@
 // RenderFrame is created for it.
 class CONTENT_EXPORT RenderFrameProxy : public IPC::Listener,
                                         public IPC::Sender,
+#if defined(USE_AURA)
+                                        public MusEmbeddedFrameDelegate,
+#endif
                                         public blink::WebRemoteFrameClient {
  public:
   // This method should be used to create a RenderFrameProxy, which will replace
@@ -135,16 +142,10 @@
   RenderWidget* render_widget() { return render_widget_; }
 
 #if defined(USE_AURA)
-  // Called when mus determines the FrameSinkId.
-  void OnMusFrameSinkIdAllocated(const viz::FrameSinkId& frame_sink_id);
-
   void SetMusEmbeddedFrame(
       std::unique_ptr<MusEmbeddedFrame> mus_embedded_frame);
 #endif
 
-  void SetChildFrameSurface(const viz::SurfaceInfo& surface_info,
-                            const viz::SurfaceSequence& sequence);
-
   // blink::WebRemoteFrameClient implementation:
   void FrameDetached(DetachType type) override;
   void ForwardPostMessage(blink::WebLocalFrame* sourceFrame,
@@ -177,6 +178,9 @@
 
   void MaybeUpdateCompositingHelper();
 
+  void SetChildFrameSurface(const viz::SurfaceInfo& surface_info,
+                            const viz::SurfaceSequence& sequence);
+
   // IPC::Listener
   bool OnMessageReceived(const IPC::Message& msg) override;
 
@@ -205,6 +209,14 @@
   void OnWillEnterFullscreen();
   void OnSetHasReceivedUserGesture();
 
+#if defined(USE_AURA)
+  // MusEmbeddedFrameDelegate
+  void OnMusEmbeddedFrameSurfaceChanged(
+      const viz::SurfaceInfo& surface_info) override;
+  void OnMusEmbeddedFrameSinkIdAllocated(
+      const viz::FrameSinkId& frame_sink_id) override;
+#endif
+
   // The routing ID by which this RenderFrameProxy is known.
   const int routing_id_;