Send compositor frame IPC with metadata.

This makes CompositorFrame contain one of two payloads: DelegatedFrameData for ubercomp and GLFrameData for the Aura model.  This also adds CompositorFrameMetadata containing information useful for positioning subwindows relative to the webpage scroll position.

The message is sent when a new switch --enable-compositor-frame-message is set.  This is enabled by default on Android and also suppresses Android-specific UpdateFrameInfo messages, which will be superceded by CompositorFrameMetadata.

BUG=152337,161945

Review URL: https://chromiumcodereview.appspot.com/11316128

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173634 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/cc/layer_tree_host_impl.h b/cc/layer_tree_host_impl.h
index 79c26c02..5337f19 100644
--- a/cc/layer_tree_host_impl.h
+++ b/cc/layer_tree_host_impl.h
@@ -22,6 +22,7 @@
 namespace cc {
 
 class CompletionEvent;
+class CompositorFrameMetadata;
 class DebugRectHistory;
 class FrameRateCounter;
 class LayerImpl;
@@ -171,6 +172,7 @@
     virtual void enforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy) OVERRIDE;
     virtual bool hasImplThread() const OVERRIDE;
     virtual bool shouldClearRootRenderPass() const OVERRIDE;
+    virtual CompositorFrameMetadata makeCompositorFrameMetadata() const OVERRIDE;
 
     // TileManagerClient implementation.
     virtual void ScheduleManageTiles() OVERRIDE;