Index: cc/trees/layer_tree_host.h |
diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h |
index 52d33215916e2c8088a4ab911dcc588d2954c1ac..43bea66d5a92dcd99548b01e1b66417ae32b310f 100644 |
--- a/cc/trees/layer_tree_host.h |
+++ b/cc/trees/layer_tree_host.h |
@@ -63,6 +63,7 @@ class LayerTreeHostImplClient; |
class LayerTreeHostSingleThreadClient; |
class PropertyTrees; |
class Region; |
+class RemoteProtoChannel; |
class RenderingStatsInstrumentation; |
class ResourceProvider; |
class ResourceUpdateQueue; |
@@ -103,6 +104,22 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { |
static scoped_ptr<LayerTreeHost> CreateSingleThreaded( |
LayerTreeHostSingleThreadClient* single_thread_client, |
InitParams* params); |
+ |
+ static scoped_ptr<LayerTreeHost> CreateRemoteServer( |
+ RemoteProtoChannel* remote_proto_channel, |
+ InitParams* params); |
+ |
+ // The lifetime of this LayerTreeHost is tied to the lifetime of the remote |
+ // server LayerTreeHost. It should be created on receiving |
+ // CompositorMessageToImpl::InitializeImpl message and destroyed on receiving |
+ // a CompositorMessageToImpl::CloseImpl message from the server. This ensures |
+ // that the client will not send any compositor messages once the |
+ // LayerTreeHost on the server is destroyed. |
+ static scoped_ptr<LayerTreeHost> CreateRemoteClient( |
+ RemoteProtoChannel* remote_proto_channel, |
+ scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
+ InitParams* params); |
+ |
virtual ~LayerTreeHost(); |
// LayerTreeHost interface to Proxy. |
@@ -382,6 +399,11 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { |
// the protobuf, the normal commit-flow should continue. |
void FromProtobufForCommit(const proto::LayerTreeHost& proto); |
+ bool IsSingleThreaded() const; |
+ bool IsThreaded() const; |
+ bool IsRemoteServer() const; |
+ bool IsRemoteClient() const; |
+ |
protected: |
LayerTreeHost(InitParams* params, CompositorMode mode); |
void InitializeThreaded( |
@@ -392,6 +414,13 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { |
LayerTreeHostSingleThreadClient* single_thread_client, |
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
scoped_ptr<BeginFrameSource> external_begin_frame_source); |
+ void InitializeRemoteServer( |
+ RemoteProtoChannel* remote_proto_channel, |
+ scoped_refptr<base::SingleThreadTaskRunner> main_task_runner); |
+ void InitializeRemoteClient( |
+ RemoteProtoChannel* remote_proto_channel, |
+ scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
+ scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner); |
void InitializeForTesting( |
scoped_ptr<TaskRunnerProvider> task_runner_provider, |
scoped_ptr<Proxy> proxy_for_testing, |
@@ -431,9 +460,6 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { |
bool AnimateLayersRecursive(Layer* current, base::TimeTicks time); |
- bool IsSingleThreaded() const; |
- bool IsThreaded() const; |
- |
struct UIResourceClientData { |
UIResourceClient* client; |
gfx::Size size; |