Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 1491033002: Create RenderSurface on Effect Tree (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@alwayspt
Patch Set: fix for crash Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698