| Index: cc/test/push_properties_counting_layer.cc
 | 
| diff --git a/cc/test/push_properties_counting_layer.cc b/cc/test/push_properties_counting_layer.cc
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..ce4f1f4d48349fac413e1d5ddd324e6721680d78
 | 
| --- /dev/null
 | 
| +++ b/cc/test/push_properties_counting_layer.cc
 | 
| @@ -0,0 +1,61 @@
 | 
| +// Copyright 2016 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#include "cc/test/push_properties_counting_layer.h"
 | 
| +
 | 
| +#include "cc/test/push_properties_counting_layer_impl.h"
 | 
| +
 | 
| +namespace cc {
 | 
| +
 | 
| +// static
 | 
| +scoped_refptr<PushPropertiesCountingLayer>
 | 
| +PushPropertiesCountingLayer::Create() {
 | 
| +  return new PushPropertiesCountingLayer();
 | 
| +}
 | 
| +
 | 
| +PushPropertiesCountingLayer::PushPropertiesCountingLayer()
 | 
| +    : push_properties_count_(0), persist_needs_push_properties_(false) {
 | 
| +  SetBounds(gfx::Size(1, 1));
 | 
| +}
 | 
| +
 | 
| +PushPropertiesCountingLayer::~PushPropertiesCountingLayer() = default;
 | 
| +
 | 
| +void PushPropertiesCountingLayer::PushPropertiesTo(LayerImpl* layer) {
 | 
| +  Layer::PushPropertiesTo(layer);
 | 
| +  AddPushPropertiesCount();
 | 
| +}
 | 
| +
 | 
| +std::unique_ptr<LayerImpl> PushPropertiesCountingLayer::CreateLayerImpl(
 | 
| +    LayerTreeImpl* tree_impl) {
 | 
| +  return PushPropertiesCountingLayerImpl::Create(tree_impl, Layer::id());
 | 
| +}
 | 
| +
 | 
| +void PushPropertiesCountingLayer::ToLayerPropertiesProto(
 | 
| +    proto::LayerUpdate* layer_update,
 | 
| +    bool inputs_only) {
 | 
| +  Layer::ToLayerPropertiesProto(layer_update, inputs_only);
 | 
| +  AddPushPropertiesCount();
 | 
| +}
 | 
| +
 | 
| +void PushPropertiesCountingLayer::SetTypeForProtoSerialization(
 | 
| +    proto::LayerNode* proto) const {
 | 
| +  proto->set_type(proto::LayerNode::PUSH_PROPERTIES_COUNTING_LAYER);
 | 
| +}
 | 
| +
 | 
| +void PushPropertiesCountingLayer::MakePushProperties() {
 | 
| +  SetContentsOpaque(!contents_opaque());
 | 
| +}
 | 
| +
 | 
| +void PushPropertiesCountingLayer::SetDrawsContent(bool draws_content) {
 | 
| +  SetIsDrawable(draws_content);
 | 
| +}
 | 
| +
 | 
| +void PushPropertiesCountingLayer::AddPushPropertiesCount() {
 | 
| +  push_properties_count_++;
 | 
| +  if (persist_needs_push_properties_) {
 | 
| +    GetLayerTree()->AddLayerShouldPushProperties(this);
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +}  // namespace cc
 | 
| 
 |