| OLD | NEW | 
|---|
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "cc/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 #include <cmath> | 8 #include <cmath> | 
| 9 | 9 | 
| 10 #include "base/bind.h" | 10 #include "base/bind.h" | 
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 188         base::TimeTicks() + base::TimeDelta::FromMilliseconds(1))); | 188         base::TimeTicks() + base::TimeDelta::FromMilliseconds(1))); | 
| 189     host_impl_->DidFinishImplFrame(); | 189     host_impl_->DidFinishImplFrame(); | 
| 190     return init; | 190     return init; | 
| 191   } | 191   } | 
| 192 | 192 | 
| 193   void SetupRootLayerImpl(scoped_ptr<LayerImpl> root) { | 193   void SetupRootLayerImpl(scoped_ptr<LayerImpl> root) { | 
| 194     root->SetPosition(gfx::PointF()); | 194     root->SetPosition(gfx::PointF()); | 
| 195     root->SetBounds(gfx::Size(10, 10)); | 195     root->SetBounds(gfx::Size(10, 10)); | 
| 196     root->SetDrawsContent(true); | 196     root->SetDrawsContent(true); | 
| 197     root->draw_properties().visible_layer_rect = gfx::Rect(0, 0, 10, 10); | 197     root->draw_properties().visible_layer_rect = gfx::Rect(0, 0, 10, 10); | 
| 198     root->SetHasRenderSurface(true); | 198     root->SetForceRenderSurface(true); | 
| 199     host_impl_->active_tree()->SetRootLayer(std::move(root)); | 199     host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 200   } | 200   } | 
| 201 | 201 | 
| 202   static void ExpectClearedScrollDeltasRecursive(LayerImpl* layer) { | 202   static void ExpectClearedScrollDeltasRecursive(LayerImpl* layer) { | 
| 203     ASSERT_EQ(layer->ScrollDelta(), gfx::Vector2d()); | 203     ASSERT_EQ(layer->ScrollDelta(), gfx::Vector2d()); | 
| 204     for (size_t i = 0; i < layer->children().size(); ++i) | 204     for (size_t i = 0; i < layer->children().size(); ++i) | 
| 205       ExpectClearedScrollDeltasRecursive(layer->children()[i].get()); | 205       ExpectClearedScrollDeltasRecursive(layer->children()[i].get()); | 
| 206   } | 206   } | 
| 207 | 207 | 
| 208   static ::testing::AssertionResult ScrollInfoContains( | 208   static ::testing::AssertionResult ScrollInfoContains( | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 249     const int kOuterViewportScrollLayerId = 117; | 249     const int kOuterViewportScrollLayerId = 117; | 
| 250     const int kContentLayerId = 118; | 250     const int kContentLayerId = 118; | 
| 251     const int kInnerViewportScrollLayerId = 2; | 251     const int kInnerViewportScrollLayerId = 2; | 
| 252     const int kInnerViewportClipLayerId = 4; | 252     const int kInnerViewportClipLayerId = 4; | 
| 253     const int kPageScaleLayerId = 5; | 253     const int kPageScaleLayerId = 5; | 
| 254 | 254 | 
| 255     scoped_ptr<LayerImpl> root = | 255     scoped_ptr<LayerImpl> root = | 
| 256         LayerImpl::Create(layer_tree_impl, 1); | 256         LayerImpl::Create(layer_tree_impl, 1); | 
| 257     root->SetBounds(content_size); | 257     root->SetBounds(content_size); | 
| 258     root->SetPosition(gfx::PointF()); | 258     root->SetPosition(gfx::PointF()); | 
| 259     root->SetHasRenderSurface(true); | 259     root->SetForceRenderSurface(true); | 
| 260 | 260 | 
| 261     scoped_ptr<LayerImpl> inner_scroll = | 261     scoped_ptr<LayerImpl> inner_scroll = | 
| 262         LayerImpl::Create(layer_tree_impl, kInnerViewportScrollLayerId); | 262         LayerImpl::Create(layer_tree_impl, kInnerViewportScrollLayerId); | 
| 263     inner_scroll->SetIsContainerForFixedPositionLayers(true); | 263     inner_scroll->SetIsContainerForFixedPositionLayers(true); | 
| 264     inner_scroll->PushScrollOffsetFromMainThread(gfx::ScrollOffset()); | 264     inner_scroll->PushScrollOffsetFromMainThread(gfx::ScrollOffset()); | 
| 265 | 265 | 
| 266     scoped_ptr<LayerImpl> inner_clip = | 266     scoped_ptr<LayerImpl> inner_clip = | 
| 267         LayerImpl::Create(layer_tree_impl, kInnerViewportClipLayerId); | 267         LayerImpl::Create(layer_tree_impl, kInnerViewportClipLayerId); | 
| 268     inner_clip->SetBounds( | 268     inner_clip->SetBounds( | 
| 269         gfx::Size(content_size.width() / 2, content_size.height() / 2)); | 269         gfx::Size(content_size.width() / 2, content_size.height() / 2)); | 
| (...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1102 TEST_F(LayerTreeHostImplTest, AnimationSchedulingPendingTree) { | 1102 TEST_F(LayerTreeHostImplTest, AnimationSchedulingPendingTree) { | 
| 1103   EXPECT_FALSE(host_impl_->CommitToActiveTree()); | 1103   EXPECT_FALSE(host_impl_->CommitToActiveTree()); | 
| 1104 | 1104 | 
| 1105   host_impl_->SetViewportSize(gfx::Size(50, 50)); | 1105   host_impl_->SetViewportSize(gfx::Size(50, 50)); | 
| 1106 | 1106 | 
| 1107   host_impl_->CreatePendingTree(); | 1107   host_impl_->CreatePendingTree(); | 
| 1108   host_impl_->pending_tree()->SetRootLayer( | 1108   host_impl_->pending_tree()->SetRootLayer( | 
| 1109       LayerImpl::Create(host_impl_->pending_tree(), 1)); | 1109       LayerImpl::Create(host_impl_->pending_tree(), 1)); | 
| 1110   LayerImpl* root = host_impl_->pending_tree()->root_layer(); | 1110   LayerImpl* root = host_impl_->pending_tree()->root_layer(); | 
| 1111   root->SetBounds(gfx::Size(50, 50)); | 1111   root->SetBounds(gfx::Size(50, 50)); | 
| 1112   root->SetHasRenderSurface(true); | 1112   root->SetForceRenderSurface(true); | 
| 1113 | 1113 | 
| 1114   root->AddChild(LayerImpl::Create(host_impl_->pending_tree(), 2)); | 1114   root->AddChild(LayerImpl::Create(host_impl_->pending_tree(), 2)); | 
| 1115   LayerImpl* child = root->children()[0].get(); | 1115   LayerImpl* child = root->children()[0].get(); | 
| 1116   child->SetBounds(gfx::Size(10, 10)); | 1116   child->SetBounds(gfx::Size(10, 10)); | 
| 1117   child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 1117   child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 
| 1118   child->SetDrawsContent(true); | 1118   child->SetDrawsContent(true); | 
| 1119   AddAnimatedTransformToLayer(child, 10.0, 3, 0); | 1119   AddAnimatedTransformToLayer(child, 10.0, 3, 0); | 
| 1120 | 1120 | 
| 1121   EXPECT_FALSE(did_request_next_frame_); | 1121   EXPECT_FALSE(did_request_next_frame_); | 
| 1122   EXPECT_FALSE(did_request_redraw_); | 1122   EXPECT_FALSE(did_request_redraw_); | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 1152 | 1152 | 
| 1153 TEST_F(LayerTreeHostImplTest, AnimationSchedulingActiveTree) { | 1153 TEST_F(LayerTreeHostImplTest, AnimationSchedulingActiveTree) { | 
| 1154   EXPECT_FALSE(host_impl_->CommitToActiveTree()); | 1154   EXPECT_FALSE(host_impl_->CommitToActiveTree()); | 
| 1155 | 1155 | 
| 1156   host_impl_->SetViewportSize(gfx::Size(50, 50)); | 1156   host_impl_->SetViewportSize(gfx::Size(50, 50)); | 
| 1157 | 1157 | 
| 1158   host_impl_->active_tree()->SetRootLayer( | 1158   host_impl_->active_tree()->SetRootLayer( | 
| 1159       LayerImpl::Create(host_impl_->active_tree(), 1)); | 1159       LayerImpl::Create(host_impl_->active_tree(), 1)); | 
| 1160   LayerImpl* root = host_impl_->active_tree()->root_layer(); | 1160   LayerImpl* root = host_impl_->active_tree()->root_layer(); | 
| 1161   root->SetBounds(gfx::Size(50, 50)); | 1161   root->SetBounds(gfx::Size(50, 50)); | 
| 1162   root->SetHasRenderSurface(true); | 1162   root->SetForceRenderSurface(true); | 
| 1163 | 1163 | 
| 1164   root->AddChild(LayerImpl::Create(host_impl_->active_tree(), 2)); | 1164   root->AddChild(LayerImpl::Create(host_impl_->active_tree(), 2)); | 
| 1165   LayerImpl* child = root->children()[0].get(); | 1165   LayerImpl* child = root->children()[0].get(); | 
| 1166   child->SetBounds(gfx::Size(10, 10)); | 1166   child->SetBounds(gfx::Size(10, 10)); | 
| 1167   child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 1167   child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); | 
| 1168   child->SetDrawsContent(true); | 1168   child->SetDrawsContent(true); | 
| 1169 | 1169 | 
| 1170   // Add a translate from 6,7 to 8,9. | 1170   // Add a translate from 6,7 to 8,9. | 
| 1171   TransformOperations start; | 1171   TransformOperations start; | 
| 1172   start.AppendTranslate(6.f, 7.f, 0.f); | 1172   start.AppendTranslate(6.f, 7.f, 0.f); | 
| (...skipping 1811 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2984     append_quads_called_ = false; | 2984     append_quads_called_ = false; | 
| 2985     did_draw_called_ = false; | 2985     did_draw_called_ = false; | 
| 2986   } | 2986   } | 
| 2987 | 2987 | 
| 2988   static void IgnoreResult(scoped_ptr<CopyOutputResult> result) {} | 2988   static void IgnoreResult(scoped_ptr<CopyOutputResult> result) {} | 
| 2989 | 2989 | 
| 2990   void AddCopyRequest() { | 2990   void AddCopyRequest() { | 
| 2991     std::vector<scoped_ptr<CopyOutputRequest>> requests; | 2991     std::vector<scoped_ptr<CopyOutputRequest>> requests; | 
| 2992     requests.push_back( | 2992     requests.push_back( | 
| 2993         CopyOutputRequest::CreateRequest(base::Bind(&IgnoreResult))); | 2993         CopyOutputRequest::CreateRequest(base::Bind(&IgnoreResult))); | 
| 2994     SetHasRenderSurface(true); | 2994     SetForceRenderSurface(true); | 
| 2995     PassCopyRequests(&requests); | 2995     PassCopyRequests(&requests); | 
| 2996   } | 2996   } | 
| 2997 | 2997 | 
| 2998  protected: | 2998  protected: | 
| 2999   DidDrawCheckLayer(LayerTreeImpl* tree_impl, int id) | 2999   DidDrawCheckLayer(LayerTreeImpl* tree_impl, int id) | 
| 3000       : LayerImpl(tree_impl, id), | 3000       : LayerImpl(tree_impl, id), | 
| 3001         will_draw_returns_false_(false), | 3001         will_draw_returns_false_(false), | 
| 3002         will_draw_called_(false), | 3002         will_draw_called_(false), | 
| 3003         append_quads_called_(false), | 3003         append_quads_called_(false), | 
| 3004         did_draw_called_(false) { | 3004         did_draw_called_(false) { | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 3016 | 3016 | 
| 3017 TEST_F(LayerTreeHostImplTest, WillDrawReturningFalseDoesNotCall) { | 3017 TEST_F(LayerTreeHostImplTest, WillDrawReturningFalseDoesNotCall) { | 
| 3018   // The root layer is always drawn, so run this test on a child layer that | 3018   // The root layer is always drawn, so run this test on a child layer that | 
| 3019   // will be masked out by the root layer's bounds. | 3019   // will be masked out by the root layer's bounds. | 
| 3020   host_impl_->active_tree()->SetRootLayer( | 3020   host_impl_->active_tree()->SetRootLayer( | 
| 3021       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 3021       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 
| 3022   DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( | 3022   DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( | 
| 3023       host_impl_->active_tree()->root_layer()); | 3023       host_impl_->active_tree()->root_layer()); | 
| 3024 | 3024 | 
| 3025   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 3025   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 
| 3026   root->SetHasRenderSurface(true); | 3026   root->SetForceRenderSurface(true); | 
| 3027   DidDrawCheckLayer* layer = | 3027   DidDrawCheckLayer* layer = | 
| 3028       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 3028       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 
| 3029 | 3029 | 
| 3030   { | 3030   { | 
| 3031     LayerTreeHostImpl::FrameData frame; | 3031     LayerTreeHostImpl::FrameData frame; | 
| 3032     EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 3032     EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 
| 3033     host_impl_->DrawLayers(&frame); | 3033     host_impl_->DrawLayers(&frame); | 
| 3034     host_impl_->DidDrawAllLayers(frame); | 3034     host_impl_->DidDrawAllLayers(frame); | 
| 3035 | 3035 | 
| 3036     EXPECT_TRUE(layer->will_draw_called()); | 3036     EXPECT_TRUE(layer->will_draw_called()); | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 3057 } | 3057 } | 
| 3058 | 3058 | 
| 3059 TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) { | 3059 TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) { | 
| 3060   // The root layer is always drawn, so run this test on a child layer that | 3060   // The root layer is always drawn, so run this test on a child layer that | 
| 3061   // will be masked out by the root layer's bounds. | 3061   // will be masked out by the root layer's bounds. | 
| 3062   host_impl_->active_tree()->SetRootLayer( | 3062   host_impl_->active_tree()->SetRootLayer( | 
| 3063       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 3063       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 
| 3064   DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( | 3064   DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( | 
| 3065       host_impl_->active_tree()->root_layer()); | 3065       host_impl_->active_tree()->root_layer()); | 
| 3066   root->SetMasksToBounds(true); | 3066   root->SetMasksToBounds(true); | 
| 3067   root->SetHasRenderSurface(true); | 3067   root->SetForceRenderSurface(true); | 
| 3068   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 3068   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 
| 3069   DidDrawCheckLayer* layer = | 3069   DidDrawCheckLayer* layer = | 
| 3070       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 3070       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 
| 3071   // Ensure visible_layer_rect for layer is empty. | 3071   // Ensure visible_layer_rect for layer is empty. | 
| 3072   layer->SetPosition(gfx::PointF(100.f, 100.f)); | 3072   layer->SetPosition(gfx::PointF(100.f, 100.f)); | 
| 3073   layer->SetBounds(gfx::Size(10, 10)); | 3073   layer->SetBounds(gfx::Size(10, 10)); | 
| 3074 | 3074 | 
| 3075   LayerTreeHostImpl::FrameData frame; | 3075   LayerTreeHostImpl::FrameData frame; | 
| 3076 | 3076 | 
| 3077   EXPECT_FALSE(layer->will_draw_called()); | 3077   EXPECT_FALSE(layer->will_draw_called()); | 
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3110   host_impl_->active_tree()->SetRootLayer( | 3110   host_impl_->active_tree()->SetRootLayer( | 
| 3111       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 3111       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 
| 3112   DidDrawCheckLayer* root = | 3112   DidDrawCheckLayer* root = | 
| 3113       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 3113       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 
| 3114 | 3114 | 
| 3115   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 3115   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 
| 3116   DidDrawCheckLayer* occluded_layer = | 3116   DidDrawCheckLayer* occluded_layer = | 
| 3117       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 3117       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 
| 3118 | 3118 | 
| 3119   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); | 3119   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); | 
| 3120   root->SetHasRenderSurface(true); | 3120   root->SetForceRenderSurface(true); | 
| 3121   DidDrawCheckLayer* top_layer = | 3121   DidDrawCheckLayer* top_layer = | 
| 3122       static_cast<DidDrawCheckLayer*>(root->children()[1].get()); | 3122       static_cast<DidDrawCheckLayer*>(root->children()[1].get()); | 
| 3123   // This layer covers the occluded_layer above. Make this layer large so it can | 3123   // This layer covers the occluded_layer above. Make this layer large so it can | 
| 3124   // occlude. | 3124   // occlude. | 
| 3125   top_layer->SetBounds(big_size); | 3125   top_layer->SetBounds(big_size); | 
| 3126   top_layer->SetContentsOpaque(true); | 3126   top_layer->SetContentsOpaque(true); | 
| 3127 | 3127 | 
| 3128   LayerTreeHostImpl::FrameData frame; | 3128   LayerTreeHostImpl::FrameData frame; | 
| 3129 | 3129 | 
| 3130   EXPECT_FALSE(occluded_layer->will_draw_called()); | 3130   EXPECT_FALSE(occluded_layer->will_draw_called()); | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 3142   EXPECT_TRUE(top_layer->did_draw_called()); | 3142   EXPECT_TRUE(top_layer->did_draw_called()); | 
| 3143 } | 3143 } | 
| 3144 | 3144 | 
| 3145 TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) { | 3145 TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) { | 
| 3146   host_impl_->active_tree()->SetRootLayer( | 3146   host_impl_->active_tree()->SetRootLayer( | 
| 3147       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 3147       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 
| 3148   DidDrawCheckLayer* root = | 3148   DidDrawCheckLayer* root = | 
| 3149       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 3149       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 
| 3150 | 3150 | 
| 3151   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 3151   root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 
| 3152   root->SetHasRenderSurface(true); | 3152   root->SetForceRenderSurface(true); | 
| 3153   DidDrawCheckLayer* layer1 = | 3153   DidDrawCheckLayer* layer1 = | 
| 3154       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 3154       static_cast<DidDrawCheckLayer*>(root->children()[0].get()); | 
| 3155 | 3155 | 
| 3156   layer1->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); | 3156   layer1->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); | 
| 3157   DidDrawCheckLayer* layer2 = | 3157   DidDrawCheckLayer* layer2 = | 
| 3158       static_cast<DidDrawCheckLayer*>(layer1->children()[0].get()); | 3158       static_cast<DidDrawCheckLayer*>(layer1->children()[0].get()); | 
| 3159 | 3159 | 
| 3160   layer1->SetHasRenderSurface(true); | 3160   layer1->SetForceRenderSurface(true); | 
| 3161   layer1->SetShouldFlattenTransform(true); | 3161   layer1->SetShouldFlattenTransform(true); | 
| 3162 | 3162 | 
| 3163   EXPECT_FALSE(root->did_draw_called()); | 3163   EXPECT_FALSE(root->did_draw_called()); | 
| 3164   EXPECT_FALSE(layer1->did_draw_called()); | 3164   EXPECT_FALSE(layer1->did_draw_called()); | 
| 3165   EXPECT_FALSE(layer2->did_draw_called()); | 3165   EXPECT_FALSE(layer2->did_draw_called()); | 
| 3166 | 3166 | 
| 3167   LayerTreeHostImpl::FrameData frame; | 3167   LayerTreeHostImpl::FrameData frame; | 
| 3168   FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | 3168   FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | 
| 3169       host_impl_->active_tree()->root_layer()); | 3169       host_impl_->active_tree()->root_layer()); | 
| 3170   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 3170   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3307       PrepareToDrawSuccessTestCase(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT)); | 3307       PrepareToDrawSuccessTestCase(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT)); | 
| 3308   cases.back().high_res_required = true; | 3308   cases.back().high_res_required = true; | 
| 3309   cases.back().layer_between.has_missing_tile = true; | 3309   cases.back().layer_between.has_missing_tile = true; | 
| 3310   cases.back().layer_before.has_missing_tile = true; | 3310   cases.back().layer_before.has_missing_tile = true; | 
| 3311   cases.back().layer_before.is_animating = true; | 3311   cases.back().layer_before.is_animating = true; | 
| 3312 | 3312 | 
| 3313   host_impl_->active_tree()->SetRootLayer( | 3313   host_impl_->active_tree()->SetRootLayer( | 
| 3314       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 3314       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 
| 3315   DidDrawCheckLayer* root = | 3315   DidDrawCheckLayer* root = | 
| 3316       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 3316       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 
| 3317   root->SetHasRenderSurface(true); | 3317   root->SetForceRenderSurface(true); | 
| 3318 | 3318 | 
| 3319   LayerTreeHostImpl::FrameData frame; | 3319   LayerTreeHostImpl::FrameData frame; | 
| 3320   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 3320   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 
| 3321   host_impl_->DrawLayers(&frame); | 3321   host_impl_->DrawLayers(&frame); | 
| 3322   host_impl_->DidDrawAllLayers(frame); | 3322   host_impl_->DidDrawAllLayers(frame); | 
| 3323   host_impl_->SwapBuffers(frame); | 3323   host_impl_->SwapBuffers(frame); | 
| 3324 | 3324 | 
| 3325   for (size_t i = 0; i < cases.size(); ++i) { | 3325   for (size_t i = 0; i < cases.size(); ++i) { | 
| 3326     const auto& testcase = cases[i]; | 3326     const auto& testcase = cases[i]; | 
| 3327     std::vector<LayerImpl*> to_remove; | 3327     std::vector<LayerImpl*> to_remove; | 
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3400   cases.back().layer_between.has_incomplete_tile = true; | 3400   cases.back().layer_between.has_incomplete_tile = true; | 
| 3401   // 3. High res required with missing tile. | 3401   // 3. High res required with missing tile. | 
| 3402   cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); | 3402   cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); | 
| 3403   cases.back().high_res_required = true; | 3403   cases.back().high_res_required = true; | 
| 3404   cases.back().layer_between.has_missing_tile = true; | 3404   cases.back().layer_between.has_missing_tile = true; | 
| 3405 | 3405 | 
| 3406   host_impl_->active_tree()->SetRootLayer( | 3406   host_impl_->active_tree()->SetRootLayer( | 
| 3407       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 3407       DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 
| 3408   DidDrawCheckLayer* root = | 3408   DidDrawCheckLayer* root = | 
| 3409       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 3409       static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 
| 3410   root->SetHasRenderSurface(true); | 3410   root->SetForceRenderSurface(true); | 
| 3411 | 3411 | 
| 3412   LayerTreeHostImpl::FrameData frame; | 3412   LayerTreeHostImpl::FrameData frame; | 
| 3413   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 3413   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 
| 3414   host_impl_->DrawLayers(&frame); | 3414   host_impl_->DrawLayers(&frame); | 
| 3415   host_impl_->DidDrawAllLayers(frame); | 3415   host_impl_->DidDrawAllLayers(frame); | 
| 3416   host_impl_->SwapBuffers(frame); | 3416   host_impl_->SwapBuffers(frame); | 
| 3417 | 3417 | 
| 3418   for (size_t i = 0; i < cases.size(); ++i) { | 3418   for (size_t i = 0; i < cases.size(); ++i) { | 
| 3419     const auto& testcase = cases[i]; | 3419     const auto& testcase = cases[i]; | 
| 3420     std::vector<LayerImpl*> to_remove; | 3420     std::vector<LayerImpl*> to_remove; | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3461     EXPECT_EQ(testcase.expected_result, PrepareToDrawFrame(&frame)); | 3461     EXPECT_EQ(testcase.expected_result, PrepareToDrawFrame(&frame)); | 
| 3462     host_impl_->DrawLayers(&frame); | 3462     host_impl_->DrawLayers(&frame); | 
| 3463     host_impl_->DidDrawAllLayers(frame); | 3463     host_impl_->DidDrawAllLayers(frame); | 
| 3464     host_impl_->SwapBuffers(frame); | 3464     host_impl_->SwapBuffers(frame); | 
| 3465   } | 3465   } | 
| 3466 } | 3466 } | 
| 3467 | 3467 | 
| 3468 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { | 3468 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { | 
| 3469   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 3469   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 3470   root->SetScrollClipLayer(Layer::INVALID_ID); | 3470   root->SetScrollClipLayer(Layer::INVALID_ID); | 
| 3471   root->SetHasRenderSurface(true); | 3471   root->SetForceRenderSurface(true); | 
| 3472   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 3472   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 3473   DrawFrame(); | 3473   DrawFrame(); | 
| 3474 | 3474 | 
| 3475   // Scroll event is ignored because layer is not scrollable. | 3475   // Scroll event is ignored because layer is not scrollable. | 
| 3476   EXPECT_EQ(InputHandler::SCROLL_IGNORED, | 3476   EXPECT_EQ(InputHandler::SCROLL_IGNORED, | 
| 3477             host_impl_->ScrollBegin(gfx::Point(), InputHandler::WHEEL)); | 3477             host_impl_->ScrollBegin(gfx::Point(), InputHandler::WHEEL)); | 
| 3478   EXPECT_FALSE(did_request_redraw_); | 3478   EXPECT_FALSE(did_request_redraw_); | 
| 3479   EXPECT_FALSE(did_request_commit_); | 3479   EXPECT_FALSE(did_request_commit_); | 
| 3480 } | 3480 } | 
| 3481 | 3481 | 
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3544         LayerImpl::Create(host_impl_->active_tree(), 4); | 3544         LayerImpl::Create(host_impl_->active_tree(), 4); | 
| 3545     scoped_ptr<LayerImpl> outer_clip = | 3545     scoped_ptr<LayerImpl> outer_clip = | 
| 3546         LayerImpl::Create(host_impl_->active_tree(), 5); | 3546         LayerImpl::Create(host_impl_->active_tree(), 5); | 
| 3547 | 3547 | 
| 3548     root_clip->SetBounds(inner_viewport_size); | 3548     root_clip->SetBounds(inner_viewport_size); | 
| 3549     root->SetScrollClipLayer(root_clip->id()); | 3549     root->SetScrollClipLayer(root_clip->id()); | 
| 3550     root->SetBounds(outer_viewport_size); | 3550     root->SetBounds(outer_viewport_size); | 
| 3551     root->SetPosition(gfx::PointF()); | 3551     root->SetPosition(gfx::PointF()); | 
| 3552     root->SetDrawsContent(false); | 3552     root->SetDrawsContent(false); | 
| 3553     root->SetIsContainerForFixedPositionLayers(true); | 3553     root->SetIsContainerForFixedPositionLayers(true); | 
| 3554     root_clip->SetHasRenderSurface(true); | 3554     root_clip->SetForceRenderSurface(true); | 
| 3555     outer_clip->SetBounds(outer_viewport_size); | 3555     outer_clip->SetBounds(outer_viewport_size); | 
| 3556     outer_scroll->SetScrollClipLayer(outer_clip->id()); | 3556     outer_scroll->SetScrollClipLayer(outer_clip->id()); | 
| 3557     outer_scroll->SetBounds(scroll_layer_size); | 3557     outer_scroll->SetBounds(scroll_layer_size); | 
| 3558     outer_scroll->SetPosition(gfx::PointF()); | 3558     outer_scroll->SetPosition(gfx::PointF()); | 
| 3559     outer_scroll->SetDrawsContent(false); | 3559     outer_scroll->SetDrawsContent(false); | 
| 3560     outer_scroll->SetIsContainerForFixedPositionLayers(true); | 3560     outer_scroll->SetIsContainerForFixedPositionLayers(true); | 
| 3561 | 3561 | 
| 3562     int inner_viewport_scroll_layer_id = root->id(); | 3562     int inner_viewport_scroll_layer_id = root->id(); | 
| 3563     int outer_viewport_scroll_layer_id = outer_scroll->id(); | 3563     int outer_viewport_scroll_layer_id = outer_scroll->id(); | 
| 3564     int page_scale_layer_id = page_scale->id(); | 3564     int page_scale_layer_id = page_scale->id(); | 
| (...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4228   scroll_clip_layer->SetBounds(surface_size); | 4228   scroll_clip_layer->SetBounds(surface_size); | 
| 4229 | 4229 | 
| 4230   scoped_ptr<LayerImpl> scroll_layer = | 4230   scoped_ptr<LayerImpl> scroll_layer = | 
| 4231       LayerImpl::Create(host_impl_->active_tree(), 2); | 4231       LayerImpl::Create(host_impl_->active_tree(), 2); | 
| 4232   scroll_layer->SetScrollClipLayer(3); | 4232   scroll_layer->SetScrollClipLayer(3); | 
| 4233   scroll_layer->SetBounds(contents_size); | 4233   scroll_layer->SetBounds(contents_size); | 
| 4234   scroll_layer->SetPosition(gfx::PointF()); | 4234   scroll_layer->SetPosition(gfx::PointF()); | 
| 4235   scroll_layer->AddChild(std::move(content_layer)); | 4235   scroll_layer->AddChild(std::move(content_layer)); | 
| 4236   scroll_clip_layer->AddChild(std::move(scroll_layer)); | 4236   scroll_clip_layer->AddChild(std::move(scroll_layer)); | 
| 4237 | 4237 | 
| 4238   scroll_clip_layer->SetHasRenderSurface(true); | 4238   scroll_clip_layer->SetForceRenderSurface(true); | 
| 4239   host_impl_->active_tree()->SetRootLayer(std::move(scroll_clip_layer)); | 4239   host_impl_->active_tree()->SetRootLayer(std::move(scroll_clip_layer)); | 
| 4240   host_impl_->SetViewportSize(surface_size); | 4240   host_impl_->SetViewportSize(surface_size); | 
| 4241   DrawFrame(); | 4241   DrawFrame(); | 
| 4242 | 4242 | 
| 4243   EXPECT_EQ(InputHandler::SCROLL_STARTED, | 4243   EXPECT_EQ(InputHandler::SCROLL_STARTED, | 
| 4244             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 4244             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 
| 4245   host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)); | 4245   host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)); | 
| 4246   host_impl_->ScrollEnd(); | 4246   host_impl_->ScrollEnd(); | 
| 4247   EXPECT_TRUE(did_request_redraw_); | 4247   EXPECT_TRUE(did_request_redraw_); | 
| 4248   EXPECT_TRUE(did_request_commit_); | 4248   EXPECT_TRUE(did_request_commit_); | 
| 4249 } | 4249 } | 
| 4250 | 4250 | 
| 4251 TEST_F(LayerTreeHostImplTest, ScrollChildCallsCommitAndRedraw) { | 4251 TEST_F(LayerTreeHostImplTest, ScrollChildCallsCommitAndRedraw) { | 
| 4252   gfx::Size surface_size(10, 10); | 4252   gfx::Size surface_size(10, 10); | 
| 4253   gfx::Size contents_size(20, 20); | 4253   gfx::Size contents_size(20, 20); | 
| 4254   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 4254   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 4255   root->SetBounds(surface_size); | 4255   root->SetBounds(surface_size); | 
| 4256   root->AddChild(CreateScrollableLayer(2, contents_size, root.get())); | 4256   root->AddChild(CreateScrollableLayer(2, contents_size, root.get())); | 
| 4257   root->SetHasRenderSurface(true); | 4257   root->SetForceRenderSurface(true); | 
| 4258   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 4258   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 4259   host_impl_->SetViewportSize(surface_size); | 4259   host_impl_->SetViewportSize(surface_size); | 
| 4260   DrawFrame(); | 4260   DrawFrame(); | 
| 4261 | 4261 | 
| 4262   EXPECT_EQ(InputHandler::SCROLL_STARTED, | 4262   EXPECT_EQ(InputHandler::SCROLL_STARTED, | 
| 4263             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 4263             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 
| 4264   host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)); | 4264   host_impl_->ScrollBy(gfx::Point(), gfx::Vector2d(0, 10)); | 
| 4265   host_impl_->ScrollEnd(); | 4265   host_impl_->ScrollEnd(); | 
| 4266   EXPECT_TRUE(did_request_redraw_); | 4266   EXPECT_TRUE(did_request_redraw_); | 
| 4267   EXPECT_TRUE(did_request_commit_); | 4267   EXPECT_TRUE(did_request_commit_); | 
| 4268 } | 4268 } | 
| 4269 | 4269 | 
| 4270 TEST_F(LayerTreeHostImplTest, ScrollMissesChild) { | 4270 TEST_F(LayerTreeHostImplTest, ScrollMissesChild) { | 
| 4271   gfx::Size surface_size(10, 10); | 4271   gfx::Size surface_size(10, 10); | 
| 4272   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 4272   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 4273   root->AddChild(CreateScrollableLayer(2, surface_size, root.get())); | 4273   root->AddChild(CreateScrollableLayer(2, surface_size, root.get())); | 
| 4274   root->SetHasRenderSurface(true); | 4274   root->SetForceRenderSurface(true); | 
| 4275   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 4275   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 4276   host_impl_->SetViewportSize(surface_size); | 4276   host_impl_->SetViewportSize(surface_size); | 
| 4277   DrawFrame(); | 4277   DrawFrame(); | 
| 4278 | 4278 | 
| 4279   // Scroll event is ignored because the input coordinate is outside the layer | 4279   // Scroll event is ignored because the input coordinate is outside the layer | 
| 4280   // boundaries. | 4280   // boundaries. | 
| 4281   EXPECT_EQ(InputHandler::SCROLL_IGNORED, | 4281   EXPECT_EQ(InputHandler::SCROLL_IGNORED, | 
| 4282             host_impl_->ScrollBegin(gfx::Point(15, 5), InputHandler::WHEEL)); | 4282             host_impl_->ScrollBegin(gfx::Point(15, 5), InputHandler::WHEEL)); | 
| 4283   EXPECT_FALSE(did_request_redraw_); | 4283   EXPECT_FALSE(did_request_redraw_); | 
| 4284   EXPECT_FALSE(did_request_commit_); | 4284   EXPECT_FALSE(did_request_commit_); | 
| 4285 } | 4285 } | 
| 4286 | 4286 | 
| 4287 TEST_F(LayerTreeHostImplTest, ScrollMissesBackfacingChild) { | 4287 TEST_F(LayerTreeHostImplTest, ScrollMissesBackfacingChild) { | 
| 4288   gfx::Size surface_size(10, 10); | 4288   gfx::Size surface_size(10, 10); | 
| 4289   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 4289   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 4290   root->SetHasRenderSurface(true); | 4290   root->SetForceRenderSurface(true); | 
| 4291   scoped_ptr<LayerImpl> child = | 4291   scoped_ptr<LayerImpl> child = | 
| 4292       CreateScrollableLayer(2, surface_size, root.get()); | 4292       CreateScrollableLayer(2, surface_size, root.get()); | 
| 4293   host_impl_->SetViewportSize(surface_size); | 4293   host_impl_->SetViewportSize(surface_size); | 
| 4294 | 4294 | 
| 4295   gfx::Transform matrix; | 4295   gfx::Transform matrix; | 
| 4296   matrix.RotateAboutXAxis(180.0); | 4296   matrix.RotateAboutXAxis(180.0); | 
| 4297   child->SetTransform(matrix); | 4297   child->SetTransform(matrix); | 
| 4298   child->SetDoubleSided(false); | 4298   child->SetDoubleSided(false); | 
| 4299 | 4299 | 
| 4300   root->AddChild(std::move(child)); | 4300   root->AddChild(std::move(child)); | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 4317       CreateScrollableLayer(1, surface_size, clip_layer.get()); | 4317       CreateScrollableLayer(1, surface_size, clip_layer.get()); | 
| 4318   content_layer->SetShouldScrollOnMainThread(true); | 4318   content_layer->SetShouldScrollOnMainThread(true); | 
| 4319   content_layer->SetScrollClipLayer(Layer::INVALID_ID); | 4319   content_layer->SetScrollClipLayer(Layer::INVALID_ID); | 
| 4320 | 4320 | 
| 4321   // Note: we can use the same clip layer for both since both calls to | 4321   // Note: we can use the same clip layer for both since both calls to | 
| 4322   // CreateScrollableLayer() use the same surface size. | 4322   // CreateScrollableLayer() use the same surface size. | 
| 4323   scoped_ptr<LayerImpl> scroll_layer = | 4323   scoped_ptr<LayerImpl> scroll_layer = | 
| 4324       CreateScrollableLayer(2, surface_size, clip_layer.get()); | 4324       CreateScrollableLayer(2, surface_size, clip_layer.get()); | 
| 4325   scroll_layer->AddChild(std::move(content_layer)); | 4325   scroll_layer->AddChild(std::move(content_layer)); | 
| 4326   clip_layer->AddChild(std::move(scroll_layer)); | 4326   clip_layer->AddChild(std::move(scroll_layer)); | 
| 4327   clip_layer->SetHasRenderSurface(true); | 4327   clip_layer->SetForceRenderSurface(true); | 
| 4328 | 4328 | 
| 4329   host_impl_->active_tree()->SetRootLayer(std::move(clip_layer)); | 4329   host_impl_->active_tree()->SetRootLayer(std::move(clip_layer)); | 
| 4330   host_impl_->SetViewportSize(surface_size); | 4330   host_impl_->SetViewportSize(surface_size); | 
| 4331   DrawFrame(); | 4331   DrawFrame(); | 
| 4332 | 4332 | 
| 4333   // Scrolling fails because the content layer is asking to be scrolled on the | 4333   // Scrolling fails because the content layer is asking to be scrolled on the | 
| 4334   // main thread. | 4334   // main thread. | 
| 4335   EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, | 4335   EXPECT_EQ(InputHandler::SCROLL_ON_MAIN_THREAD, | 
| 4336             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 4336             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 
| 4337 } | 4337 } | 
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4519   EXPECT_EQ(1.f, host_impl_->active_tree()->page_scale_delta()); | 4519   EXPECT_EQ(1.f, host_impl_->active_tree()->page_scale_delta()); | 
| 4520 } | 4520 } | 
| 4521 | 4521 | 
| 4522 TEST_F(LayerTreeHostImplTest, ScrollChildBeyondLimit) { | 4522 TEST_F(LayerTreeHostImplTest, ScrollChildBeyondLimit) { | 
| 4523   // Scroll a child layer beyond its maximum scroll range and make sure the | 4523   // Scroll a child layer beyond its maximum scroll range and make sure the | 
| 4524   // parent layer isn't scrolled. | 4524   // parent layer isn't scrolled. | 
| 4525   gfx::Size surface_size(10, 10); | 4525   gfx::Size surface_size(10, 10); | 
| 4526   gfx::Size content_size(20, 20); | 4526   gfx::Size content_size(20, 20); | 
| 4527   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 4527   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 4528   root->SetBounds(surface_size); | 4528   root->SetBounds(surface_size); | 
| 4529   root->SetHasRenderSurface(true); | 4529   root->SetForceRenderSurface(true); | 
| 4530   scoped_ptr<LayerImpl> grand_child = | 4530   scoped_ptr<LayerImpl> grand_child = | 
| 4531       CreateScrollableLayer(3, content_size, root.get()); | 4531       CreateScrollableLayer(3, content_size, root.get()); | 
| 4532 | 4532 | 
| 4533   scoped_ptr<LayerImpl> child = | 4533   scoped_ptr<LayerImpl> child = | 
| 4534       CreateScrollableLayer(2, content_size, root.get()); | 4534       CreateScrollableLayer(2, content_size, root.get()); | 
| 4535   LayerImpl* grand_child_layer = grand_child.get(); | 4535   LayerImpl* grand_child_layer = grand_child.get(); | 
| 4536   child->AddChild(std::move(grand_child)); | 4536   child->AddChild(std::move(grand_child)); | 
| 4537 | 4537 | 
| 4538   LayerImpl* child_layer = child.get(); | 4538   LayerImpl* child_layer = child.get(); | 
| 4539   root->AddChild(std::move(child)); | 4539   root->AddChild(std::move(child)); | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 4565     ExpectNone(*scroll_info.get(), child->id()); | 4565     ExpectNone(*scroll_info.get(), child->id()); | 
| 4566   } | 4566   } | 
| 4567 } | 4567 } | 
| 4568 | 4568 | 
| 4569 TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) { | 4569 TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) { | 
| 4570   // Scroll a child layer beyond its maximum scroll range and make sure the | 4570   // Scroll a child layer beyond its maximum scroll range and make sure the | 
| 4571   // the scroll doesn't bubble up to the parent layer. | 4571   // the scroll doesn't bubble up to the parent layer. | 
| 4572   gfx::Size surface_size(20, 20); | 4572   gfx::Size surface_size(20, 20); | 
| 4573   gfx::Size viewport_size(10, 10); | 4573   gfx::Size viewport_size(10, 10); | 
| 4574   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 4574   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 4575   root->SetHasRenderSurface(true); | 4575   root->SetForceRenderSurface(true); | 
| 4576   scoped_ptr<LayerImpl> root_scrolling = | 4576   scoped_ptr<LayerImpl> root_scrolling = | 
| 4577       CreateScrollableLayer(2, surface_size, root.get()); | 4577       CreateScrollableLayer(2, surface_size, root.get()); | 
| 4578   root_scrolling->SetIsContainerForFixedPositionLayers(true); | 4578   root_scrolling->SetIsContainerForFixedPositionLayers(true); | 
| 4579 | 4579 | 
| 4580   scoped_ptr<LayerImpl> grand_child = | 4580   scoped_ptr<LayerImpl> grand_child = | 
| 4581       CreateScrollableLayer(4, surface_size, root.get()); | 4581       CreateScrollableLayer(4, surface_size, root.get()); | 
| 4582 | 4582 | 
| 4583   scoped_ptr<LayerImpl> child = | 4583   scoped_ptr<LayerImpl> child = | 
| 4584       CreateScrollableLayer(3, surface_size, root.get()); | 4584       CreateScrollableLayer(3, surface_size, root.get()); | 
| 4585   LayerImpl* grand_child_layer = grand_child.get(); | 4585   LayerImpl* grand_child_layer = grand_child.get(); | 
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 4681                                    gfx::Vector2d(0, 4))); | 4681                                    gfx::Vector2d(0, 4))); | 
| 4682   } | 4682   } | 
| 4683 } | 4683 } | 
| 4684 TEST_F(LayerTreeHostImplTest, ScrollEventBubbling) { | 4684 TEST_F(LayerTreeHostImplTest, ScrollEventBubbling) { | 
| 4685   // When we try to scroll a non-scrollable child layer, the scroll delta | 4685   // When we try to scroll a non-scrollable child layer, the scroll delta | 
| 4686   // should be applied to one of its ancestors if possible. | 4686   // should be applied to one of its ancestors if possible. | 
| 4687   gfx::Size surface_size(10, 10); | 4687   gfx::Size surface_size(10, 10); | 
| 4688   gfx::Size content_size(20, 20); | 4688   gfx::Size content_size(20, 20); | 
| 4689   scoped_ptr<LayerImpl> root_clip = | 4689   scoped_ptr<LayerImpl> root_clip = | 
| 4690       LayerImpl::Create(host_impl_->active_tree(), 3); | 4690       LayerImpl::Create(host_impl_->active_tree(), 3); | 
| 4691   root_clip->SetHasRenderSurface(true); | 4691   root_clip->SetForceRenderSurface(true); | 
| 4692   scoped_ptr<LayerImpl> root = | 4692   scoped_ptr<LayerImpl> root = | 
| 4693       CreateScrollableLayer(1, content_size, root_clip.get()); | 4693       CreateScrollableLayer(1, content_size, root_clip.get()); | 
| 4694   // Make 'root' the clip layer for child: since they have the same sizes the | 4694   // Make 'root' the clip layer for child: since they have the same sizes the | 
| 4695   // child will have zero max_scroll_offset and scrolls will bubble. | 4695   // child will have zero max_scroll_offset and scrolls will bubble. | 
| 4696   scoped_ptr<LayerImpl> child = | 4696   scoped_ptr<LayerImpl> child = | 
| 4697       CreateScrollableLayer(2, content_size, root.get()); | 4697       CreateScrollableLayer(2, content_size, root.get()); | 
| 4698   child->SetIsContainerForFixedPositionLayers(true); | 4698   child->SetIsContainerForFixedPositionLayers(true); | 
| 4699   root->SetBounds(content_size); | 4699   root->SetBounds(content_size); | 
| 4700 | 4700 | 
| 4701   int root_scroll_id = root->id(); | 4701   int root_scroll_id = root->id(); | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 4725   } | 4725   } | 
| 4726 } | 4726 } | 
| 4727 | 4727 | 
| 4728 TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) { | 4728 TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) { | 
| 4729   gfx::Size surface_size(10, 10); | 4729   gfx::Size surface_size(10, 10); | 
| 4730   scoped_ptr<LayerImpl> root_clip = | 4730   scoped_ptr<LayerImpl> root_clip = | 
| 4731       LayerImpl::Create(host_impl_->active_tree(), 1); | 4731       LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 4732   scoped_ptr<LayerImpl> root_scroll = | 4732   scoped_ptr<LayerImpl> root_scroll = | 
| 4733       CreateScrollableLayer(2, surface_size, root_clip.get()); | 4733       CreateScrollableLayer(2, surface_size, root_clip.get()); | 
| 4734   root_scroll->SetIsContainerForFixedPositionLayers(true); | 4734   root_scroll->SetIsContainerForFixedPositionLayers(true); | 
| 4735   root_clip->SetHasRenderSurface(true); | 4735   root_clip->SetForceRenderSurface(true); | 
| 4736   root_clip->AddChild(std::move(root_scroll)); | 4736   root_clip->AddChild(std::move(root_scroll)); | 
| 4737   host_impl_->active_tree()->SetRootLayer(std::move(root_clip)); | 4737   host_impl_->active_tree()->SetRootLayer(std::move(root_clip)); | 
| 4738   host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 1, 2, | 4738   host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 1, 2, | 
| 4739                                                       Layer::INVALID_ID); | 4739                                                       Layer::INVALID_ID); | 
| 4740   host_impl_->active_tree()->DidBecomeActive(); | 4740   host_impl_->active_tree()->DidBecomeActive(); | 
| 4741   host_impl_->SetViewportSize(surface_size); | 4741   host_impl_->SetViewportSize(surface_size); | 
| 4742 | 4742 | 
| 4743   // Draw one frame and then immediately rebuild the layer tree to mimic a tree | 4743   // Draw one frame and then immediately rebuild the layer tree to mimic a tree | 
| 4744   // synchronization. | 4744   // synchronization. | 
| 4745   DrawFrame(); | 4745   DrawFrame(); | 
| 4746   host_impl_->active_tree()->DetachLayerTree(); | 4746   host_impl_->active_tree()->DetachLayerTree(); | 
| 4747   scoped_ptr<LayerImpl> root_clip2 = | 4747   scoped_ptr<LayerImpl> root_clip2 = | 
| 4748       LayerImpl::Create(host_impl_->active_tree(), 3); | 4748       LayerImpl::Create(host_impl_->active_tree(), 3); | 
| 4749   scoped_ptr<LayerImpl> root_scroll2 = | 4749   scoped_ptr<LayerImpl> root_scroll2 = | 
| 4750       CreateScrollableLayer(4, surface_size, root_clip2.get()); | 4750       CreateScrollableLayer(4, surface_size, root_clip2.get()); | 
| 4751   root_scroll2->SetIsContainerForFixedPositionLayers(true); | 4751   root_scroll2->SetIsContainerForFixedPositionLayers(true); | 
| 4752   root_clip2->AddChild(std::move(root_scroll2)); | 4752   root_clip2->AddChild(std::move(root_scroll2)); | 
| 4753   root_clip2->SetHasRenderSurface(true); | 4753   root_clip2->SetForceRenderSurface(true); | 
| 4754   host_impl_->active_tree()->SetRootLayer(std::move(root_clip2)); | 4754   host_impl_->active_tree()->SetRootLayer(std::move(root_clip2)); | 
| 4755   host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 3, 4, | 4755   host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 3, 4, | 
| 4756                                                       Layer::INVALID_ID); | 4756                                                       Layer::INVALID_ID); | 
| 4757   host_impl_->active_tree()->DidBecomeActive(); | 4757   host_impl_->active_tree()->DidBecomeActive(); | 
| 4758 | 4758 | 
| 4759   // Scrolling should still work even though we did not draw yet. | 4759   // Scrolling should still work even though we did not draw yet. | 
| 4760   RebuildPropertyTrees(); | 4760   RebuildPropertyTrees(); | 
| 4761   EXPECT_EQ(InputHandler::SCROLL_STARTED, | 4761   EXPECT_EQ(InputHandler::SCROLL_STARTED, | 
| 4762             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 4762             host_impl_->ScrollBegin(gfx::Point(5, 5), InputHandler::WHEEL)); | 
| 4763 } | 4763 } | 
| (...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5314 } | 5314 } | 
| 5315 | 5315 | 
| 5316 | 5316 | 
| 5317 TEST_F(LayerTreeHostImplTest, OverscrollChildWithoutBubbling) { | 5317 TEST_F(LayerTreeHostImplTest, OverscrollChildWithoutBubbling) { | 
| 5318   // Scroll child layers beyond their maximum scroll range and make sure root | 5318   // Scroll child layers beyond their maximum scroll range and make sure root | 
| 5319   // overscroll does not accumulate. | 5319   // overscroll does not accumulate. | 
| 5320   InputHandlerScrollResult scroll_result; | 5320   InputHandlerScrollResult scroll_result; | 
| 5321   gfx::Size surface_size(10, 10); | 5321   gfx::Size surface_size(10, 10); | 
| 5322   scoped_ptr<LayerImpl> root_clip = | 5322   scoped_ptr<LayerImpl> root_clip = | 
| 5323       LayerImpl::Create(host_impl_->active_tree(), 4); | 5323       LayerImpl::Create(host_impl_->active_tree(), 4); | 
| 5324   root_clip->SetHasRenderSurface(true); | 5324   root_clip->SetForceRenderSurface(true); | 
| 5325 | 5325 | 
| 5326   scoped_ptr<LayerImpl> root = | 5326   scoped_ptr<LayerImpl> root = | 
| 5327       CreateScrollableLayer(1, surface_size, root_clip.get()); | 5327       CreateScrollableLayer(1, surface_size, root_clip.get()); | 
| 5328 | 5328 | 
| 5329   scoped_ptr<LayerImpl> grand_child = | 5329   scoped_ptr<LayerImpl> grand_child = | 
| 5330       CreateScrollableLayer(3, surface_size, root_clip.get()); | 5330       CreateScrollableLayer(3, surface_size, root_clip.get()); | 
| 5331 | 5331 | 
| 5332   scoped_ptr<LayerImpl> child = | 5332   scoped_ptr<LayerImpl> child = | 
| 5333       CreateScrollableLayer(2, surface_size, root_clip.get()); | 5333       CreateScrollableLayer(2, surface_size, root_clip.get()); | 
| 5334   LayerImpl* grand_child_layer = grand_child.get(); | 5334   LayerImpl* grand_child_layer = grand_child.get(); | 
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5571   gfx::Rect quad_visible_rect_; | 5571   gfx::Rect quad_visible_rect_; | 
| 5572   ResourceId resource_id_; | 5572   ResourceId resource_id_; | 
| 5573 }; | 5573 }; | 
| 5574 | 5574 | 
| 5575 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { | 5575 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { | 
| 5576   { | 5576   { | 
| 5577     scoped_ptr<LayerImpl> root = | 5577     scoped_ptr<LayerImpl> root = | 
| 5578         LayerImpl::Create(host_impl_->active_tree(), 1); | 5578         LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 5579     root->SetBounds(gfx::Size(10, 10)); | 5579     root->SetBounds(gfx::Size(10, 10)); | 
| 5580     root->SetDrawsContent(false); | 5580     root->SetDrawsContent(false); | 
| 5581     root->SetHasRenderSurface(true); | 5581     root->SetForceRenderSurface(true); | 
| 5582     host_impl_->active_tree()->SetRootLayer(std::move(root)); | 5582     host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 5583   } | 5583   } | 
| 5584   LayerImpl* root = host_impl_->active_tree()->root_layer(); | 5584   LayerImpl* root = host_impl_->active_tree()->root_layer(); | 
| 5585 | 5585 | 
| 5586   root->AddChild( | 5586   root->AddChild( | 
| 5587       BlendStateCheckLayer::Create(host_impl_->active_tree(), | 5587       BlendStateCheckLayer::Create(host_impl_->active_tree(), | 
| 5588                                    2, | 5588                                    2, | 
| 5589                                    host_impl_->resource_provider())); | 5589                                    host_impl_->resource_provider())); | 
| 5590   BlendStateCheckLayer* layer1 = | 5590   BlendStateCheckLayer* layer1 = | 
| 5591       static_cast<BlendStateCheckLayer*>(root->children()[0].get()); | 5591       static_cast<BlendStateCheckLayer*>(root->children()[0].get()); | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5681   EXPECT_TRUE(layer2->quads_appended()); | 5681   EXPECT_TRUE(layer2->quads_appended()); | 
| 5682   host_impl_->DidDrawAllLayers(frame); | 5682   host_impl_->DidDrawAllLayers(frame); | 
| 5683 | 5683 | 
| 5684   // Parent layer with translucent opacity and opaque content. Since it has a | 5684   // Parent layer with translucent opacity and opaque content. Since it has a | 
| 5685   // drawing child, it's drawn to a render surface which carries the opacity, | 5685   // drawing child, it's drawn to a render surface which carries the opacity, | 
| 5686   // so it's itself drawn without blending. | 5686   // so it's itself drawn without blending. | 
| 5687   // Child layer with opaque content, drawn without blending (parent surface | 5687   // Child layer with opaque content, drawn without blending (parent surface | 
| 5688   // carries the inherited opacity). | 5688   // carries the inherited opacity). | 
| 5689   layer1->SetContentsOpaque(true); | 5689   layer1->SetContentsOpaque(true); | 
| 5690   layer1->SetOpacity(0.5f); | 5690   layer1->SetOpacity(0.5f); | 
| 5691   layer1->SetHasRenderSurface(true); | 5691   layer1->SetForceRenderSurface(true); | 
| 5692   layer1->SetExpectation(false, true); | 5692   layer1->SetExpectation(false, true); | 
| 5693   layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 5693   layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 
| 5694   layer2->SetExpectation(false, false); | 5694   layer2->SetExpectation(false, false); | 
| 5695   layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 5695   layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); | 
| 5696   FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | 5696   FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | 
| 5697       host_impl_->active_tree()->root_layer()); | 5697       host_impl_->active_tree()->root_layer()); | 
| 5698   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 5698   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 
| 5699   host_impl_->DrawLayers(&frame); | 5699   host_impl_->DrawLayers(&frame); | 
| 5700   EXPECT_TRUE(layer1->quads_appended()); | 5700   EXPECT_TRUE(layer1->quads_appended()); | 
| 5701   EXPECT_TRUE(layer2->quads_appended()); | 5701   EXPECT_TRUE(layer2->quads_appended()); | 
| 5702   host_impl_->DidDrawAllLayers(frame); | 5702   host_impl_->DidDrawAllLayers(frame); | 
| 5703   layer1->SetHasRenderSurface(false); | 5703   layer1->SetForceRenderSurface(false); | 
| 5704 | 5704 | 
| 5705   // Draw again, but with child non-opaque, to make sure | 5705   // Draw again, but with child non-opaque, to make sure | 
| 5706   // layer1 not culled. | 5706   // layer1 not culled. | 
| 5707   layer1->SetContentsOpaque(true); | 5707   layer1->SetContentsOpaque(true); | 
| 5708   layer1->SetOpacity(1.f); | 5708   layer1->SetOpacity(1.f); | 
| 5709   layer1->SetExpectation(false, false); | 5709   layer1->SetExpectation(false, false); | 
| 5710   layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 5710   layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); | 
| 5711   layer2->SetContentsOpaque(true); | 5711   layer2->SetContentsOpaque(true); | 
| 5712   layer2->SetOpacity(0.5f); | 5712   layer2->SetOpacity(0.5f); | 
| 5713   layer2->SetExpectation(true, false); | 5713   layer2->SetExpectation(true, false); | 
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5811       return FakeOutputSurface::CreateSoftware( | 5811       return FakeOutputSurface::CreateSoftware( | 
| 5812           make_scoped_ptr(new SoftwareOutputDevice())); | 5812           make_scoped_ptr(new SoftwareOutputDevice())); | 
| 5813     } | 5813     } | 
| 5814     return FakeOutputSurface::Create3d(); | 5814     return FakeOutputSurface::Create3d(); | 
| 5815   } | 5815   } | 
| 5816 | 5816 | 
| 5817   void SetupActiveTreeLayers() { | 5817   void SetupActiveTreeLayers() { | 
| 5818     host_impl_->active_tree()->set_background_color(SK_ColorGRAY); | 5818     host_impl_->active_tree()->set_background_color(SK_ColorGRAY); | 
| 5819     host_impl_->active_tree()->SetRootLayer( | 5819     host_impl_->active_tree()->SetRootLayer( | 
| 5820         LayerImpl::Create(host_impl_->active_tree(), 1)); | 5820         LayerImpl::Create(host_impl_->active_tree(), 1)); | 
| 5821     host_impl_->active_tree()->root_layer()->SetHasRenderSurface(true); | 5821     host_impl_->active_tree()->root_layer()->SetForceRenderSurface(true); | 
| 5822     host_impl_->active_tree()->root_layer()->AddChild( | 5822     host_impl_->active_tree()->root_layer()->AddChild( | 
| 5823         BlendStateCheckLayer::Create(host_impl_->active_tree(), | 5823         BlendStateCheckLayer::Create(host_impl_->active_tree(), | 
| 5824                                      2, | 5824                                      2, | 
| 5825                                      host_impl_->resource_provider())); | 5825                                      host_impl_->resource_provider())); | 
| 5826     child_ = static_cast<BlendStateCheckLayer*>( | 5826     child_ = static_cast<BlendStateCheckLayer*>( | 
| 5827         host_impl_->active_tree()->root_layer()->children()[0].get()); | 5827         host_impl_->active_tree()->root_layer()->children()[0].get()); | 
| 5828     child_->SetExpectation(false, false); | 5828     child_->SetExpectation(false, false); | 
| 5829     child_->SetContentsOpaque(true); | 5829     child_->SetContentsOpaque(true); | 
| 5830   } | 5830   } | 
| 5831 | 5831 | 
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6067 TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) { | 6067 TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) { | 
| 6068   scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); | 6068   scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); | 
| 6069   scoped_ptr<OutputSurface> output_surface( | 6069   scoped_ptr<OutputSurface> output_surface( | 
| 6070       FakeOutputSurface::Create3d(provider)); | 6070       FakeOutputSurface::Create3d(provider)); | 
| 6071   CreateHostImpl(DefaultSettings(), std::move(output_surface)); | 6071   CreateHostImpl(DefaultSettings(), std::move(output_surface)); | 
| 6072 | 6072 | 
| 6073   scoped_ptr<LayerImpl> root = | 6073   scoped_ptr<LayerImpl> root = | 
| 6074       FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); | 6074       FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); | 
| 6075   root->SetBounds(gfx::Size(10, 10)); | 6075   root->SetBounds(gfx::Size(10, 10)); | 
| 6076   root->SetDrawsContent(true); | 6076   root->SetDrawsContent(true); | 
| 6077   root->SetHasRenderSurface(true); | 6077   root->SetForceRenderSurface(true); | 
| 6078   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 6078   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 6079   EXPECT_FALSE(provider->TestContext3d()->reshape_called()); | 6079   EXPECT_FALSE(provider->TestContext3d()->reshape_called()); | 
| 6080   provider->TestContext3d()->clear_reshape_called(); | 6080   provider->TestContext3d()->clear_reshape_called(); | 
| 6081 | 6081 | 
| 6082   LayerTreeHostImpl::FrameData frame; | 6082   LayerTreeHostImpl::FrameData frame; | 
| 6083   host_impl_->SetViewportSize(gfx::Size(10, 10)); | 6083   host_impl_->SetViewportSize(gfx::Size(10, 10)); | 
| 6084   host_impl_->active_tree()->SetDeviceScaleFactor(1.f); | 6084   host_impl_->active_tree()->SetDeviceScaleFactor(1.f); | 
| 6085   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6085   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 
| 6086   host_impl_->DrawLayers(&frame); | 6086   host_impl_->DrawLayers(&frame); | 
| 6087   EXPECT_TRUE(provider->TestContext3d()->reshape_called()); | 6087   EXPECT_TRUE(provider->TestContext3d()->reshape_called()); | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6133           settings, this, &task_runner_provider_, &stats_instrumentation_, | 6133           settings, this, &task_runner_provider_, &stats_instrumentation_, | 
| 6134           &shared_bitmap_manager_, NULL, &task_graph_runner_, 0); | 6134           &shared_bitmap_manager_, NULL, &task_graph_runner_, 0); | 
| 6135   layer_tree_host_impl->SetVisible(true); | 6135   layer_tree_host_impl->SetVisible(true); | 
| 6136   layer_tree_host_impl->InitializeRenderer(output_surface.get()); | 6136   layer_tree_host_impl->InitializeRenderer(output_surface.get()); | 
| 6137   layer_tree_host_impl->WillBeginImplFrame( | 6137   layer_tree_host_impl->WillBeginImplFrame( | 
| 6138       CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); | 6138       CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE)); | 
| 6139   layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500)); | 6139   layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500)); | 
| 6140 | 6140 | 
| 6141   scoped_ptr<LayerImpl> root = | 6141   scoped_ptr<LayerImpl> root = | 
| 6142       FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1); | 6142       FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1); | 
| 6143   root->SetHasRenderSurface(true); | 6143   root->SetForceRenderSurface(true); | 
| 6144   scoped_ptr<LayerImpl> child = | 6144   scoped_ptr<LayerImpl> child = | 
| 6145       FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2); | 6145       FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2); | 
| 6146   child->SetPosition(gfx::PointF(12.f, 13.f)); | 6146   child->SetPosition(gfx::PointF(12.f, 13.f)); | 
| 6147   child->SetBounds(gfx::Size(14, 15)); | 6147   child->SetBounds(gfx::Size(14, 15)); | 
| 6148   child->SetDrawsContent(true); | 6148   child->SetDrawsContent(true); | 
| 6149   root->SetBounds(gfx::Size(500, 500)); | 6149   root->SetBounds(gfx::Size(500, 500)); | 
| 6150   root->SetDrawsContent(true); | 6150   root->SetDrawsContent(true); | 
| 6151   root->AddChild(std::move(child)); | 6151   root->AddChild(std::move(child)); | 
| 6152   layer_tree_host_impl->active_tree()->SetRootLayer(std::move(root)); | 6152   layer_tree_host_impl->active_tree()->SetRootLayer(std::move(root)); | 
| 6153 | 6153 | 
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6199 | 6199 | 
| 6200 TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) { | 6200 TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) { | 
| 6201   scoped_ptr<LayerImpl> root = | 6201   scoped_ptr<LayerImpl> root = | 
| 6202       FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); | 6202       FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); | 
| 6203   scoped_ptr<LayerImpl> child = | 6203   scoped_ptr<LayerImpl> child = | 
| 6204       FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 2); | 6204       FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 2); | 
| 6205   child->SetBounds(gfx::Size(10, 10)); | 6205   child->SetBounds(gfx::Size(10, 10)); | 
| 6206   child->SetDrawsContent(true); | 6206   child->SetDrawsContent(true); | 
| 6207   root->SetBounds(gfx::Size(10, 10)); | 6207   root->SetBounds(gfx::Size(10, 10)); | 
| 6208   root->SetDrawsContent(true); | 6208   root->SetDrawsContent(true); | 
| 6209   root->SetHasRenderSurface(true); | 6209   root->SetForceRenderSurface(true); | 
| 6210   root->AddChild(std::move(child)); | 6210   root->AddChild(std::move(child)); | 
| 6211 | 6211 | 
| 6212   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 6212   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 6213 | 6213 | 
| 6214   LayerTreeHostImpl::FrameData frame; | 6214   LayerTreeHostImpl::FrameData frame; | 
| 6215 | 6215 | 
| 6216   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 6216   EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 
| 6217   EXPECT_EQ(1u, frame.render_surface_layer_list->size()); | 6217   EXPECT_EQ(1u, frame.render_surface_layer_list->size()); | 
| 6218   EXPECT_EQ(1u, frame.render_passes.size()); | 6218   EXPECT_EQ(1u, frame.render_passes.size()); | 
| 6219   host_impl_->DidDrawAllLayers(frame); | 6219   host_impl_->DidDrawAllLayers(frame); | 
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6448       LayerImpl::Create(my_host_impl->active_tree(), 1); | 6448       LayerImpl::Create(my_host_impl->active_tree(), 1); | 
| 6449   scoped_ptr<LayerImpl> child = | 6449   scoped_ptr<LayerImpl> child = | 
| 6450       LayerImpl::Create(my_host_impl->active_tree(), 2); | 6450       LayerImpl::Create(my_host_impl->active_tree(), 2); | 
| 6451   scoped_ptr<LayerImpl> grand_child = | 6451   scoped_ptr<LayerImpl> grand_child = | 
| 6452       FakeLayerWithQuads::Create(my_host_impl->active_tree(), 3); | 6452       FakeLayerWithQuads::Create(my_host_impl->active_tree(), 3); | 
| 6453 | 6453 | 
| 6454   gfx::Rect root_rect(0, 0, 100, 100); | 6454   gfx::Rect root_rect(0, 0, 100, 100); | 
| 6455   gfx::Rect child_rect(10, 10, 50, 50); | 6455   gfx::Rect child_rect(10, 10, 50, 50); | 
| 6456   gfx::Rect grand_child_rect(5, 5, 150, 150); | 6456   gfx::Rect grand_child_rect(5, 5, 150, 150); | 
| 6457 | 6457 | 
| 6458   root->SetHasRenderSurface(true); | 6458   root->SetForceRenderSurface(true); | 
| 6459   root->SetPosition(gfx::PointF(root_rect.origin())); | 6459   root->SetPosition(gfx::PointF(root_rect.origin())); | 
| 6460   root->SetBounds(root_rect.size()); | 6460   root->SetBounds(root_rect.size()); | 
| 6461   root->draw_properties().visible_layer_rect = root_rect; | 6461   root->draw_properties().visible_layer_rect = root_rect; | 
| 6462   root->SetDrawsContent(false); | 6462   root->SetDrawsContent(false); | 
| 6463   root->render_surface()->SetContentRect(gfx::Rect(root_rect.size())); |  | 
| 6464 | 6463 | 
| 6465   child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y())); | 6464   child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y())); | 
| 6466   child->SetOpacity(0.5f); | 6465   child->SetOpacity(0.5f); | 
| 6467   child->SetBounds(gfx::Size(child_rect.width(), child_rect.height())); | 6466   child->SetBounds(gfx::Size(child_rect.width(), child_rect.height())); | 
| 6468   child->draw_properties().visible_layer_rect = child_rect; | 6467   child->draw_properties().visible_layer_rect = child_rect; | 
| 6469   child->SetDrawsContent(false); | 6468   child->SetDrawsContent(false); | 
| 6470   child->SetHasRenderSurface(true); | 6469   child->SetForceRenderSurface(true); | 
| 6471 | 6470 | 
| 6472   grand_child->SetPosition(gfx::PointF(grand_child_rect.origin())); | 6471   grand_child->SetPosition(gfx::PointF(grand_child_rect.origin())); | 
| 6473   grand_child->SetBounds(grand_child_rect.size()); | 6472   grand_child->SetBounds(grand_child_rect.size()); | 
| 6474   grand_child->draw_properties().visible_layer_rect = grand_child_rect; | 6473   grand_child->draw_properties().visible_layer_rect = grand_child_rect; | 
| 6475   grand_child->SetDrawsContent(true); | 6474   grand_child->SetDrawsContent(true); | 
| 6476 | 6475 | 
| 6477   child->AddChild(std::move(grand_child)); | 6476   child->AddChild(std::move(grand_child)); | 
| 6478   root->AddChild(std::move(child)); | 6477   root->AddChild(std::move(child)); | 
| 6479 | 6478 | 
| 6480   my_host_impl->active_tree()->SetRootLayer(std::move(root)); | 6479   my_host_impl->active_tree()->SetRootLayer(std::move(root)); | 
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6546   scoped_ptr<TestWebGraphicsContext3D> context = | 6545   scoped_ptr<TestWebGraphicsContext3D> context = | 
| 6547       TestWebGraphicsContext3D::Create(); | 6546       TestWebGraphicsContext3D::Create(); | 
| 6548   TestWebGraphicsContext3D* context3d = context.get(); | 6547   TestWebGraphicsContext3D* context3d = context.get(); | 
| 6549   scoped_ptr<OutputSurface> output_surface( | 6548   scoped_ptr<OutputSurface> output_surface( | 
| 6550       FakeOutputSurface::Create3d(std::move(context))); | 6549       FakeOutputSurface::Create3d(std::move(context))); | 
| 6551   CreateHostImpl(DefaultSettings(), std::move(output_surface)); | 6550   CreateHostImpl(DefaultSettings(), std::move(output_surface)); | 
| 6552 | 6551 | 
| 6553   scoped_ptr<LayerImpl> root_layer = | 6552   scoped_ptr<LayerImpl> root_layer = | 
| 6554       LayerImpl::Create(host_impl_->active_tree(), 1); | 6553       LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 6555   root_layer->SetBounds(gfx::Size(10, 10)); | 6554   root_layer->SetBounds(gfx::Size(10, 10)); | 
| 6556   root_layer->SetHasRenderSurface(true); | 6555   root_layer->SetForceRenderSurface(true); | 
| 6557 | 6556 | 
| 6558   scoped_refptr<VideoFrame> softwareFrame = | 6557   scoped_refptr<VideoFrame> softwareFrame = | 
| 6559       media::VideoFrame::CreateColorFrame( | 6558       media::VideoFrame::CreateColorFrame( | 
| 6560           gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); | 6559           gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); | 
| 6561   FakeVideoFrameProvider provider; | 6560   FakeVideoFrameProvider provider; | 
| 6562   provider.set_frame(softwareFrame); | 6561   provider.set_frame(softwareFrame); | 
| 6563   scoped_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( | 6562   scoped_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( | 
| 6564       host_impl_->active_tree(), 4, &provider, media::VIDEO_ROTATION_0); | 6563       host_impl_->active_tree(), 4, &provider, media::VIDEO_ROTATION_0); | 
| 6565   video_layer->SetBounds(gfx::Size(10, 10)); | 6564   video_layer->SetBounds(gfx::Size(10, 10)); | 
| 6566   video_layer->SetDrawsContent(true); | 6565   video_layer->SetDrawsContent(true); | 
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6679     EXPECT_EQ(expect_to_draw, host_impl_->SwapBuffers(frame)); | 6678     EXPECT_EQ(expect_to_draw, host_impl_->SwapBuffers(frame)); | 
| 6680   } | 6679   } | 
| 6681 }; | 6680 }; | 
| 6682 | 6681 | 
| 6683 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) { | 6682 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) { | 
| 6684   scoped_ptr<SolidColorLayerImpl> root = | 6683   scoped_ptr<SolidColorLayerImpl> root = | 
| 6685       SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 6684       SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 
| 6686   root->SetPosition(gfx::PointF()); | 6685   root->SetPosition(gfx::PointF()); | 
| 6687   root->SetBounds(gfx::Size(10, 10)); | 6686   root->SetBounds(gfx::Size(10, 10)); | 
| 6688   root->SetDrawsContent(true); | 6687   root->SetDrawsContent(true); | 
| 6689   root->SetHasRenderSurface(true); | 6688   root->SetForceRenderSurface(true); | 
| 6690 | 6689 | 
| 6691   // Child layer is in the bottom right corner. | 6690   // Child layer is in the bottom right corner. | 
| 6692   scoped_ptr<SolidColorLayerImpl> child = | 6691   scoped_ptr<SolidColorLayerImpl> child = | 
| 6693       SolidColorLayerImpl::Create(host_impl_->active_tree(), 2); | 6692       SolidColorLayerImpl::Create(host_impl_->active_tree(), 2); | 
| 6694   child->SetPosition(gfx::PointF(9.f, 9.f)); | 6693   child->SetPosition(gfx::PointF(9.f, 9.f)); | 
| 6695   child->SetBounds(gfx::Size(1, 1)); | 6694   child->SetBounds(gfx::Size(1, 1)); | 
| 6696   child->SetDrawsContent(true); | 6695   child->SetDrawsContent(true); | 
| 6697   root->AddChild(std::move(child)); | 6696   root->AddChild(std::move(child)); | 
| 6698 | 6697 | 
| 6699   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 6698   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 6736   host_impl_->SetViewportSize(device_viewport_size); | 6735   host_impl_->SetViewportSize(device_viewport_size); | 
| 6737 | 6736 | 
| 6738   host_impl_->CreatePendingTree(); | 6737   host_impl_->CreatePendingTree(); | 
| 6739   host_impl_->pending_tree()->SetDeviceScaleFactor(device_scale_factor); | 6738   host_impl_->pending_tree()->SetDeviceScaleFactor(device_scale_factor); | 
| 6740   host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f / 16.f, | 6739   host_impl_->pending_tree()->PushPageScaleFromMainThread(1.f, 1.f / 16.f, | 
| 6741                                                           16.f); | 6740                                                           16.f); | 
| 6742 | 6741 | 
| 6743   scoped_ptr<LayerImpl> scoped_root = | 6742   scoped_ptr<LayerImpl> scoped_root = | 
| 6744       LayerImpl::Create(host_impl_->pending_tree(), 1); | 6743       LayerImpl::Create(host_impl_->pending_tree(), 1); | 
| 6745   LayerImpl* root = scoped_root.get(); | 6744   LayerImpl* root = scoped_root.get(); | 
| 6746   root->SetHasRenderSurface(true); | 6745   root->SetForceRenderSurface(true); | 
| 6747 | 6746 | 
| 6748   host_impl_->pending_tree()->SetRootLayer(std::move(scoped_root)); | 6747   host_impl_->pending_tree()->SetRootLayer(std::move(scoped_root)); | 
| 6749 | 6748 | 
| 6750   scoped_ptr<LayerImpl> scoped_scrolling_layer = | 6749   scoped_ptr<LayerImpl> scoped_scrolling_layer = | 
| 6751       LayerImpl::Create(host_impl_->pending_tree(), 2); | 6750       LayerImpl::Create(host_impl_->pending_tree(), 2); | 
| 6752   LayerImpl* scrolling_layer = scoped_scrolling_layer.get(); | 6751   LayerImpl* scrolling_layer = scoped_scrolling_layer.get(); | 
| 6753   root->AddChild(std::move(scoped_scrolling_layer)); | 6752   root->AddChild(std::move(scoped_scrolling_layer)); | 
| 6754 | 6753 | 
| 6755   gfx::Size content_layer_bounds(100000, 100); | 6754   gfx::Size content_layer_bounds(100000, 100); | 
| 6756   scoped_refptr<FakeDisplayListRasterSource> raster_source( | 6755   scoped_refptr<FakeDisplayListRasterSource> raster_source( | 
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7114   EXPECT_EQ(0u, context_provider->TestContext3d()->NumTextures()); | 7113   EXPECT_EQ(0u, context_provider->TestContext3d()->NumTextures()); | 
| 7115 } | 7114 } | 
| 7116 | 7115 | 
| 7117 TEST_F(LayerTreeHostImplTest, TouchFlingShouldNotBubble) { | 7116 TEST_F(LayerTreeHostImplTest, TouchFlingShouldNotBubble) { | 
| 7118   // When flinging via touch, only the child should scroll (we should not | 7117   // When flinging via touch, only the child should scroll (we should not | 
| 7119   // bubble). | 7118   // bubble). | 
| 7120   gfx::Size surface_size(10, 10); | 7119   gfx::Size surface_size(10, 10); | 
| 7121   gfx::Size content_size(20, 20); | 7120   gfx::Size content_size(20, 20); | 
| 7122   scoped_ptr<LayerImpl> root_clip = | 7121   scoped_ptr<LayerImpl> root_clip = | 
| 7123       LayerImpl::Create(host_impl_->active_tree(), 3); | 7122       LayerImpl::Create(host_impl_->active_tree(), 3); | 
| 7124   root_clip->SetHasRenderSurface(true); | 7123   root_clip->SetForceRenderSurface(true); | 
| 7125 | 7124 | 
| 7126   scoped_ptr<LayerImpl> root = | 7125   scoped_ptr<LayerImpl> root = | 
| 7127       CreateScrollableLayer(1, content_size, root_clip.get()); | 7126       CreateScrollableLayer(1, content_size, root_clip.get()); | 
| 7128   root->SetIsContainerForFixedPositionLayers(true); | 7127   root->SetIsContainerForFixedPositionLayers(true); | 
| 7129   scoped_ptr<LayerImpl> child = | 7128   scoped_ptr<LayerImpl> child = | 
| 7130       CreateScrollableLayer(2, content_size, root_clip.get()); | 7129       CreateScrollableLayer(2, content_size, root_clip.get()); | 
| 7131 | 7130 | 
| 7132   root->AddChild(std::move(child)); | 7131   root->AddChild(std::move(child)); | 
| 7133   int root_id = root->id(); | 7132   int root_id = root->id(); | 
| 7134   root_clip->AddChild(std::move(root)); | 7133   root_clip->AddChild(std::move(root)); | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 7158     ASSERT_EQ(1u, scroll_info->scrolls.size()); | 7157     ASSERT_EQ(1u, scroll_info->scrolls.size()); | 
| 7159     ExpectNone(*scroll_info.get(), root_id); | 7158     ExpectNone(*scroll_info.get(), root_id); | 
| 7160   } | 7159   } | 
| 7161 } | 7160 } | 
| 7162 | 7161 | 
| 7163 TEST_F(LayerTreeHostImplTest, TouchFlingShouldContinueScrollingCurrentLayer) { | 7162 TEST_F(LayerTreeHostImplTest, TouchFlingShouldContinueScrollingCurrentLayer) { | 
| 7164   // Scroll a child layer beyond its maximum scroll range and make sure the | 7163   // Scroll a child layer beyond its maximum scroll range and make sure the | 
| 7165   // the scroll doesn't bubble up to the parent layer. | 7164   // the scroll doesn't bubble up to the parent layer. | 
| 7166   gfx::Size surface_size(10, 10); | 7165   gfx::Size surface_size(10, 10); | 
| 7167   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 7166   scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 
| 7168   root->SetHasRenderSurface(true); | 7167   root->SetForceRenderSurface(true); | 
| 7169   scoped_ptr<LayerImpl> root_scrolling = | 7168   scoped_ptr<LayerImpl> root_scrolling = | 
| 7170       CreateScrollableLayer(2, surface_size, root.get()); | 7169       CreateScrollableLayer(2, surface_size, root.get()); | 
| 7171 | 7170 | 
| 7172   scoped_ptr<LayerImpl> grand_child = | 7171   scoped_ptr<LayerImpl> grand_child = | 
| 7173       CreateScrollableLayer(4, surface_size, root.get()); | 7172       CreateScrollableLayer(4, surface_size, root.get()); | 
| 7174   grand_child->PushScrollOffsetFromMainThread(gfx::ScrollOffset(0, 2)); | 7173   grand_child->PushScrollOffsetFromMainThread(gfx::ScrollOffset(0, 2)); | 
| 7175 | 7174 | 
| 7176   scoped_ptr<LayerImpl> child = | 7175   scoped_ptr<LayerImpl> child = | 
| 7177       CreateScrollableLayer(3, surface_size, root.get()); | 7176       CreateScrollableLayer(3, surface_size, root.get()); | 
| 7178   child->PushScrollOffsetFromMainThread(gfx::ScrollOffset(0, 4)); | 7177   child->PushScrollOffsetFromMainThread(gfx::ScrollOffset(0, 4)); | 
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7229     host_impl_->ScrollEnd(); | 7228     host_impl_->ScrollEnd(); | 
| 7230   } | 7229   } | 
| 7231 } | 7230 } | 
| 7232 | 7231 | 
| 7233 TEST_F(LayerTreeHostImplTest, WheelFlingShouldntBubble) { | 7232 TEST_F(LayerTreeHostImplTest, WheelFlingShouldntBubble) { | 
| 7234   // When flinging via wheel, we shouldn't bubble. | 7233   // When flinging via wheel, we shouldn't bubble. | 
| 7235   gfx::Size surface_size(10, 10); | 7234   gfx::Size surface_size(10, 10); | 
| 7236   gfx::Size content_size(20, 20); | 7235   gfx::Size content_size(20, 20); | 
| 7237   scoped_ptr<LayerImpl> root_clip = | 7236   scoped_ptr<LayerImpl> root_clip = | 
| 7238       LayerImpl::Create(host_impl_->active_tree(), 3); | 7237       LayerImpl::Create(host_impl_->active_tree(), 3); | 
| 7239   root_clip->SetHasRenderSurface(true); | 7238   root_clip->SetForceRenderSurface(true); | 
| 7240   scoped_ptr<LayerImpl> root_scroll = | 7239   scoped_ptr<LayerImpl> root_scroll = | 
| 7241       CreateScrollableLayer(1, content_size, root_clip.get()); | 7240       CreateScrollableLayer(1, content_size, root_clip.get()); | 
| 7242   int root_scroll_id = root_scroll->id(); | 7241   int root_scroll_id = root_scroll->id(); | 
| 7243   scoped_ptr<LayerImpl> child = | 7242   scoped_ptr<LayerImpl> child = | 
| 7244       CreateScrollableLayer(2, content_size, root_clip.get()); | 7243       CreateScrollableLayer(2, content_size, root_clip.get()); | 
| 7245 | 7244 | 
| 7246   root_scroll->AddChild(std::move(child)); | 7245   root_scroll->AddChild(std::move(child)); | 
| 7247   root_clip->AddChild(std::move(root_scroll)); | 7246   root_clip->AddChild(std::move(root_scroll)); | 
| 7248 | 7247 | 
| 7249   host_impl_->SetViewportSize(surface_size); | 7248   host_impl_->SetViewportSize(surface_size); | 
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7461 } | 7460 } | 
| 7462 | 7461 | 
| 7463 // Make sure LatencyInfo carried by LatencyInfoSwapPromise are passed | 7462 // Make sure LatencyInfo carried by LatencyInfoSwapPromise are passed | 
| 7464 // to CompositorFrameMetadata after SwapBuffers(); | 7463 // to CompositorFrameMetadata after SwapBuffers(); | 
| 7465 TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) { | 7464 TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) { | 
| 7466   scoped_ptr<SolidColorLayerImpl> root = | 7465   scoped_ptr<SolidColorLayerImpl> root = | 
| 7467       SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 7466       SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 
| 7468   root->SetPosition(gfx::PointF()); | 7467   root->SetPosition(gfx::PointF()); | 
| 7469   root->SetBounds(gfx::Size(10, 10)); | 7468   root->SetBounds(gfx::Size(10, 10)); | 
| 7470   root->SetDrawsContent(true); | 7469   root->SetDrawsContent(true); | 
| 7471   root->SetHasRenderSurface(true); | 7470   root->SetForceRenderSurface(true); | 
| 7472 | 7471 | 
| 7473   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 7472   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 7474 | 7473 | 
| 7475   FakeOutputSurface* fake_output_surface = | 7474   FakeOutputSurface* fake_output_surface = | 
| 7476       static_cast<FakeOutputSurface*>(host_impl_->output_surface()); | 7475       static_cast<FakeOutputSurface*>(host_impl_->output_surface()); | 
| 7477 | 7476 | 
| 7478   const std::vector<ui::LatencyInfo>& metadata_latency_before = | 7477   const std::vector<ui::LatencyInfo>& metadata_latency_before = | 
| 7479       fake_output_surface->last_sent_frame().metadata.latency_info; | 7478       fake_output_surface->last_sent_frame().metadata.latency_info; | 
| 7480   EXPECT_TRUE(metadata_latency_before.empty()); | 7479   EXPECT_TRUE(metadata_latency_before.empty()); | 
| 7481 | 7480 | 
| (...skipping 19 matching lines...) Expand all  Loading... | 
| 7501       ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); | 7500       ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); | 
| 7502 } | 7501 } | 
| 7503 | 7502 | 
| 7504 TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) { | 7503 TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) { | 
| 7505   int root_layer_id = 1; | 7504   int root_layer_id = 1; | 
| 7506   scoped_ptr<SolidColorLayerImpl> root = | 7505   scoped_ptr<SolidColorLayerImpl> root = | 
| 7507       SolidColorLayerImpl::Create(host_impl_->active_tree(), root_layer_id); | 7506       SolidColorLayerImpl::Create(host_impl_->active_tree(), root_layer_id); | 
| 7508   root->SetPosition(gfx::PointF()); | 7507   root->SetPosition(gfx::PointF()); | 
| 7509   root->SetBounds(gfx::Size(10, 10)); | 7508   root->SetBounds(gfx::Size(10, 10)); | 
| 7510   root->SetDrawsContent(true); | 7509   root->SetDrawsContent(true); | 
| 7511   root->SetHasRenderSurface(true); | 7510   root->SetForceRenderSurface(true); | 
| 7512 | 7511 | 
| 7513   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 7512   host_impl_->active_tree()->SetRootLayer(std::move(root)); | 
| 7514 | 7513 | 
| 7515   // Ensure the default frame selection bounds are empty. | 7514   // Ensure the default frame selection bounds are empty. | 
| 7516   FakeOutputSurface* fake_output_surface = | 7515   FakeOutputSurface* fake_output_surface = | 
| 7517       static_cast<FakeOutputSurface*>(host_impl_->output_surface()); | 7516       static_cast<FakeOutputSurface*>(host_impl_->output_surface()); | 
| 7518   const ViewportSelection& selection_before = | 7517   const ViewportSelection& selection_before = | 
| 7519       fake_output_surface->last_sent_frame().metadata.selection; | 7518       fake_output_surface->last_sent_frame().metadata.selection; | 
| 7520   EXPECT_EQ(ViewportSelectionBound(), selection_before.start); | 7519   EXPECT_EQ(ViewportSelectionBound(), selection_before.start); | 
| 7521   EXPECT_EQ(ViewportSelectionBound(), selection_before.end); | 7520   EXPECT_EQ(ViewportSelectionBound(), selection_before.end); | 
| (...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 8136     contents->SetDrawsContent(true); | 8135     contents->SetDrawsContent(true); | 
| 8137     contents->SetBounds(content_size); | 8136     contents->SetBounds(content_size); | 
| 8138     contents->SetPosition(gfx::PointF()); | 8137     contents->SetPosition(gfx::PointF()); | 
| 8139 | 8138 | 
| 8140     outer_scroll->AddChild(std::move(contents)); | 8139     outer_scroll->AddChild(std::move(contents)); | 
| 8141     outer_clip->AddChild(std::move(outer_scroll)); | 8140     outer_clip->AddChild(std::move(outer_scroll)); | 
| 8142     inner_scroll->AddChild(std::move(outer_clip)); | 8141     inner_scroll->AddChild(std::move(outer_clip)); | 
| 8143     page_scale->AddChild(std::move(inner_scroll)); | 8142     page_scale->AddChild(std::move(inner_scroll)); | 
| 8144     inner_clip->AddChild(std::move(page_scale)); | 8143     inner_clip->AddChild(std::move(page_scale)); | 
| 8145 | 8144 | 
| 8146     inner_clip->SetHasRenderSurface(true); | 8145     inner_clip->SetForceRenderSurface(true); | 
| 8147     layer_tree_impl->SetRootLayer(std::move(inner_clip)); | 8146     layer_tree_impl->SetRootLayer(std::move(inner_clip)); | 
| 8148     layer_tree_impl->SetViewportLayersFromIds( | 8147     layer_tree_impl->SetViewportLayersFromIds( | 
| 8149         Layer::INVALID_ID, kPageScaleLayerId, kInnerViewportScrollLayerId, | 8148         Layer::INVALID_ID, kPageScaleLayerId, kInnerViewportScrollLayerId, | 
| 8150         kOuterViewportScrollLayerId); | 8149         kOuterViewportScrollLayerId); | 
| 8151 | 8150 | 
| 8152     host_impl_->active_tree()->DidBecomeActive(); | 8151     host_impl_->active_tree()->DidBecomeActive(); | 
| 8153   } | 8152   } | 
| 8154 }; | 8153 }; | 
| 8155 | 8154 | 
| 8156 TEST_F(LayerTreeHostImplVirtualViewportTest, ScrollBothInnerAndOuterLayer) { | 8155 TEST_F(LayerTreeHostImplVirtualViewportTest, ScrollBothInnerAndOuterLayer) { | 
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 8603 | 8602 | 
| 8604 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsSublayerScaleFactor) { | 8603 TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsSublayerScaleFactor) { | 
| 8605   const gfx::Size layer_size(100, 100); | 8604   const gfx::Size layer_size(100, 100); | 
| 8606   SetupScrollAndContentsLayers(layer_size); | 8605   SetupScrollAndContentsLayers(layer_size); | 
| 8607   LayerImpl* content_layer = host_impl_->active_tree() | 8606   LayerImpl* content_layer = host_impl_->active_tree() | 
| 8608                                  ->OuterViewportScrollLayer() | 8607                                  ->OuterViewportScrollLayer() | 
| 8609                                  ->children()[0] | 8608                                  ->children()[0] | 
| 8610                                  .get(); | 8609                                  .get(); | 
| 8611   content_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100)); | 8610   content_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100)); | 
| 8612   LayerImpl* test_layer = host_impl_->active_tree()->LayerById(100); | 8611   LayerImpl* test_layer = host_impl_->active_tree()->LayerById(100); | 
| 8613   test_layer->SetHasRenderSurface(true); | 8612   test_layer->SetForceRenderSurface(true); | 
| 8614   test_layer->SetDrawsContent(true); | 8613   test_layer->SetDrawsContent(true); | 
| 8615   test_layer->SetBounds(layer_size); | 8614   test_layer->SetBounds(layer_size); | 
| 8616   gfx::Transform perspective_transform; | 8615   gfx::Transform perspective_transform; | 
| 8617   perspective_transform.ApplyPerspectiveDepth(2); | 8616   perspective_transform.ApplyPerspectiveDepth(2); | 
| 8618   test_layer->SetTransform(perspective_transform); | 8617   test_layer->SetTransform(perspective_transform); | 
| 8619 | 8618 | 
| 8620   RebuildPropertyTrees(); | 8619   RebuildPropertyTrees(); | 
| 8621   bool update_lcd_text = false; | 8620   bool update_lcd_text = false; | 
| 8622 | 8621 | 
| 8623   host_impl_->SetViewportSize(gfx::Size(50, 50)); | 8622   host_impl_->SetViewportSize(gfx::Size(50, 50)); | 
| (...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 9260 TEST_F(LayerTreeHostImplTest, SubLayerScaleForNodeInSubtreeOfPageScaleLayer) { | 9259 TEST_F(LayerTreeHostImplTest, SubLayerScaleForNodeInSubtreeOfPageScaleLayer) { | 
| 9261   // Checks that the sublayer scale of a transform node in the subtree of the | 9260   // Checks that the sublayer scale of a transform node in the subtree of the | 
| 9262   // page scale layer is updated without a property tree rebuild. | 9261   // page scale layer is updated without a property tree rebuild. | 
| 9263   host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 3.f); | 9262   host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 3.f); | 
| 9264   CreateScrollAndContentsLayers(host_impl_->active_tree(), gfx::Size(100, 100)); | 9263   CreateScrollAndContentsLayers(host_impl_->active_tree(), gfx::Size(100, 100)); | 
| 9265   LayerImpl* page_scale_layer = host_impl_->active_tree()->PageScaleLayer(); | 9264   LayerImpl* page_scale_layer = host_impl_->active_tree()->PageScaleLayer(); | 
| 9266   page_scale_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100)); | 9265   page_scale_layer->AddChild(LayerImpl::Create(host_impl_->active_tree(), 100)); | 
| 9267 | 9266 | 
| 9268   LayerImpl* in_subtree_of_page_scale_layer = | 9267   LayerImpl* in_subtree_of_page_scale_layer = | 
| 9269       host_impl_->active_tree()->LayerById(100); | 9268       host_impl_->active_tree()->LayerById(100); | 
| 9270   in_subtree_of_page_scale_layer->SetHasRenderSurface(true); | 9269   in_subtree_of_page_scale_layer->SetForceRenderSurface(true); | 
| 9271   host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 9270   host_impl_->active_tree()->BuildPropertyTreesForTesting(); | 
| 9272   DrawFrame(); | 9271   DrawFrame(); | 
| 9273   TransformNode* node = | 9272   TransformNode* node = | 
| 9274       host_impl_->active_tree()->property_trees()->transform_tree.Node( | 9273       host_impl_->active_tree()->property_trees()->transform_tree.Node( | 
| 9275           in_subtree_of_page_scale_layer->transform_tree_index()); | 9274           in_subtree_of_page_scale_layer->transform_tree_index()); | 
| 9276   EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(1.f, 1.f)); | 9275   EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(1.f, 1.f)); | 
| 9277 | 9276 | 
| 9278   host_impl_->active_tree()->SetPageScaleOnActiveTree(2.f); | 9277   host_impl_->active_tree()->SetPageScaleOnActiveTree(2.f); | 
| 9279   DrawFrame(); | 9278   DrawFrame(); | 
| 9280   in_subtree_of_page_scale_layer = host_impl_->active_tree()->LayerById(100); | 9279   in_subtree_of_page_scale_layer = host_impl_->active_tree()->LayerById(100); | 
| 9281   node = host_impl_->active_tree()->property_trees()->transform_tree.Node( | 9280   node = host_impl_->active_tree()->property_trees()->transform_tree.Node( | 
| 9282       in_subtree_of_page_scale_layer->transform_tree_index()); | 9281       in_subtree_of_page_scale_layer->transform_tree_index()); | 
| 9283   EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(2.f, 2.f)); | 9282   EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(2.f, 2.f)); | 
| 9284 } | 9283 } | 
| 9285 | 9284 | 
| 9286 }  // namespace | 9285 }  // namespace | 
| 9287 }  // namespace cc | 9286 }  // namespace cc | 
| OLD | NEW | 
|---|