| 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 <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 public: | 78 public: |
| 79 LayerTreeHostImplTest() | 79 LayerTreeHostImplTest() |
| 80 : proxy_(base::MessageLoopProxy::current()), | 80 : proxy_(base::MessageLoopProxy::current()), |
| 81 always_impl_thread_(&proxy_), | 81 always_impl_thread_(&proxy_), |
| 82 always_main_thread_blocked_(&proxy_), | 82 always_main_thread_blocked_(&proxy_), |
| 83 shared_bitmap_manager_(new TestSharedBitmapManager()), | 83 shared_bitmap_manager_(new TestSharedBitmapManager()), |
| 84 on_can_draw_state_changed_called_(false), | 84 on_can_draw_state_changed_called_(false), |
| 85 did_notify_ready_to_activate_(false), | 85 did_notify_ready_to_activate_(false), |
| 86 did_request_commit_(false), | 86 did_request_commit_(false), |
| 87 did_request_redraw_(false), | 87 did_request_redraw_(false), |
| 88 did_request_animate_(false), |
| 88 did_request_manage_tiles_(false), | 89 did_request_manage_tiles_(false), |
| 89 did_upload_visible_tile_(false), | 90 did_upload_visible_tile_(false), |
| 90 reduce_memory_result_(true), | 91 reduce_memory_result_(true), |
| 91 current_limit_bytes_(0), | 92 current_limit_bytes_(0), |
| 92 current_priority_cutoff_value_(0) { | 93 current_priority_cutoff_value_(0) { |
| 93 media::InitializeMediaLibraryForTesting(); | 94 media::InitializeMediaLibraryForTesting(); |
| 94 } | 95 } |
| 95 | 96 |
| 96 LayerTreeSettings DefaultSettings() { | 97 LayerTreeSettings DefaultSettings() { |
| 97 LayerTreeSettings settings; | 98 LayerTreeSettings settings; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 124 did_notify_ready_to_activate_ = true; | 125 did_notify_ready_to_activate_ = true; |
| 125 host_impl_->ActivatePendingTree(); | 126 host_impl_->ActivatePendingTree(); |
| 126 } | 127 } |
| 127 virtual void SetNeedsRedrawOnImplThread() OVERRIDE { | 128 virtual void SetNeedsRedrawOnImplThread() OVERRIDE { |
| 128 did_request_redraw_ = true; | 129 did_request_redraw_ = true; |
| 129 } | 130 } |
| 130 virtual void SetNeedsRedrawRectOnImplThread( | 131 virtual void SetNeedsRedrawRectOnImplThread( |
| 131 const gfx::Rect& damage_rect) OVERRIDE { | 132 const gfx::Rect& damage_rect) OVERRIDE { |
| 132 did_request_redraw_ = true; | 133 did_request_redraw_ = true; |
| 133 } | 134 } |
| 135 virtual void SetNeedsAnimateOnImplThread() OVERRIDE { |
| 136 did_request_animate_ = true; |
| 137 } |
| 134 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE { | 138 virtual void SetNeedsManageTilesOnImplThread() OVERRIDE { |
| 135 did_request_manage_tiles_ = true; | 139 did_request_manage_tiles_ = true; |
| 136 } | 140 } |
| 137 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE { | 141 virtual void DidInitializeVisibleTileOnImplThread() OVERRIDE { |
| 138 did_upload_visible_tile_ = true; | 142 did_upload_visible_tile_ = true; |
| 139 } | 143 } |
| 140 virtual void SetNeedsCommitOnImplThread() OVERRIDE { | 144 virtual void SetNeedsCommitOnImplThread() OVERRIDE { |
| 141 did_request_commit_ = true; | 145 did_request_commit_ = true; |
| 142 } | 146 } |
| 143 virtual void PostAnimationEventsToMainThreadOnImplThread( | 147 virtual void PostAnimationEventsToMainThreadOnImplThread( |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 DebugScopedSetImplThread always_impl_thread_; | 393 DebugScopedSetImplThread always_impl_thread_; |
| 390 DebugScopedSetMainThreadBlocked always_main_thread_blocked_; | 394 DebugScopedSetMainThreadBlocked always_main_thread_blocked_; |
| 391 | 395 |
| 392 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; | 396 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; |
| 393 scoped_ptr<LayerTreeHostImpl> host_impl_; | 397 scoped_ptr<LayerTreeHostImpl> host_impl_; |
| 394 FakeRenderingStatsInstrumentation stats_instrumentation_; | 398 FakeRenderingStatsInstrumentation stats_instrumentation_; |
| 395 bool on_can_draw_state_changed_called_; | 399 bool on_can_draw_state_changed_called_; |
| 396 bool did_notify_ready_to_activate_; | 400 bool did_notify_ready_to_activate_; |
| 397 bool did_request_commit_; | 401 bool did_request_commit_; |
| 398 bool did_request_redraw_; | 402 bool did_request_redraw_; |
| 403 bool did_request_animate_; |
| 399 bool did_request_manage_tiles_; | 404 bool did_request_manage_tiles_; |
| 400 bool did_upload_visible_tile_; | 405 bool did_upload_visible_tile_; |
| 401 bool reduce_memory_result_; | 406 bool reduce_memory_result_; |
| 402 base::TimeDelta requested_scrollbar_animation_delay_; | 407 base::TimeDelta requested_scrollbar_animation_delay_; |
| 403 size_t current_limit_bytes_; | 408 size_t current_limit_bytes_; |
| 404 int current_priority_cutoff_value_; | 409 int current_priority_cutoff_value_; |
| 405 }; | 410 }; |
| 406 | 411 |
| 407 TEST_F(LayerTreeHostImplTest, NotifyIfCanDrawChanged) { | 412 TEST_F(LayerTreeHostImplTest, NotifyIfCanDrawChanged) { |
| 408 bool always_draw = false; | 413 bool always_draw = false; |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 897 host_impl_->ScrollBegin(gfx::Point(50, 50), InputHandler::Gesture); | 902 host_impl_->ScrollBegin(gfx::Point(50, 50), InputHandler::Gesture); |
| 898 host_impl_->PinchGestureBegin(); | 903 host_impl_->PinchGestureBegin(); |
| 899 host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(50, 50)); | 904 host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(50, 50)); |
| 900 // While the gesture is still active, the scroll layer should have a | 905 // While the gesture is still active, the scroll layer should have a |
| 901 // container size delta = container->bounds() * ((1.f - | 906 // container size delta = container->bounds() * ((1.f - |
| 902 // page_scale_delta)/()) | 907 // page_scale_delta)/()) |
| 903 EXPECT_EQ(expected_container_size_delta, | 908 EXPECT_EQ(expected_container_size_delta, |
| 904 scroll_layer->FixedContainerSizeDelta()); | 909 scroll_layer->FixedContainerSizeDelta()); |
| 905 host_impl_->PinchGestureEnd(); | 910 host_impl_->PinchGestureEnd(); |
| 906 host_impl_->ScrollEnd(); | 911 host_impl_->ScrollEnd(); |
| 912 EXPECT_FALSE(did_request_animate_); |
| 907 EXPECT_TRUE(did_request_redraw_); | 913 EXPECT_TRUE(did_request_redraw_); |
| 908 EXPECT_TRUE(did_request_commit_); | 914 EXPECT_TRUE(did_request_commit_); |
| 909 EXPECT_EQ(gfx::Size(50, 50), container_layer->bounds()); | 915 EXPECT_EQ(gfx::Size(50, 50), container_layer->bounds()); |
| 910 | 916 |
| 911 scoped_ptr<ScrollAndScaleSet> scroll_info = | 917 scoped_ptr<ScrollAndScaleSet> scroll_info = |
| 912 host_impl_->ProcessScrollDeltas(); | 918 host_impl_->ProcessScrollDeltas(); |
| 913 EXPECT_EQ(scroll_info->page_scale_delta, page_scale_delta); | 919 EXPECT_EQ(scroll_info->page_scale_delta, page_scale_delta); |
| 914 | 920 |
| 915 EXPECT_EQ(gfx::Vector2d(75, 75).ToString(), | 921 EXPECT_EQ(gfx::Vector2d(75, 75).ToString(), |
| 916 scroll_layer->MaxScrollOffset().ToString()); | 922 scroll_layer->MaxScrollOffset().ToString()); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 min_page_scale, | 969 min_page_scale, |
| 964 max_page_scale); | 970 max_page_scale); |
| 965 scroll_layer->SetScrollDelta(gfx::Vector2d()); | 971 scroll_layer->SetScrollDelta(gfx::Vector2d()); |
| 966 | 972 |
| 967 float page_scale_delta = 2.f; | 973 float page_scale_delta = 2.f; |
| 968 host_impl_->ScrollBegin(gfx::Point(50, 50), InputHandler::Gesture); | 974 host_impl_->ScrollBegin(gfx::Point(50, 50), InputHandler::Gesture); |
| 969 host_impl_->PinchGestureBegin(); | 975 host_impl_->PinchGestureBegin(); |
| 970 host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(50, 50)); | 976 host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(50, 50)); |
| 971 host_impl_->PinchGestureEnd(); | 977 host_impl_->PinchGestureEnd(); |
| 972 host_impl_->ScrollEnd(); | 978 host_impl_->ScrollEnd(); |
| 979 EXPECT_FALSE(did_request_animate_); |
| 973 EXPECT_TRUE(did_request_redraw_); | 980 EXPECT_TRUE(did_request_redraw_); |
| 974 EXPECT_TRUE(did_request_commit_); | 981 EXPECT_TRUE(did_request_commit_); |
| 975 | 982 |
| 976 scoped_ptr<ScrollAndScaleSet> scroll_info = | 983 scoped_ptr<ScrollAndScaleSet> scroll_info = |
| 977 host_impl_->ProcessScrollDeltas(); | 984 host_impl_->ProcessScrollDeltas(); |
| 978 EXPECT_EQ(scroll_info->page_scale_delta, page_scale_delta); | 985 EXPECT_EQ(scroll_info->page_scale_delta, page_scale_delta); |
| 979 } | 986 } |
| 980 | 987 |
| 981 // Zoom-in clamping | 988 // Zoom-in clamping |
| 982 { | 989 { |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1104 base::TimeTicks halfway_through_animation = start_time + duration / 2; | 1111 base::TimeTicks halfway_through_animation = start_time + duration / 2; |
| 1105 base::TimeTicks end_time = start_time + duration; | 1112 base::TimeTicks end_time = start_time + duration; |
| 1106 | 1113 |
| 1107 // Non-anchor zoom-in | 1114 // Non-anchor zoom-in |
| 1108 { | 1115 { |
| 1109 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, | 1116 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, |
| 1110 min_page_scale, | 1117 min_page_scale, |
| 1111 max_page_scale); | 1118 max_page_scale); |
| 1112 scroll_layer->SetScrollOffset(gfx::Vector2d(50, 50)); | 1119 scroll_layer->SetScrollOffset(gfx::Vector2d(50, 50)); |
| 1113 | 1120 |
| 1121 did_request_redraw_ = false; |
| 1122 did_request_animate_ = false; |
| 1114 host_impl_->StartPageScaleAnimation(gfx::Vector2d(), false, 2.f, duration); | 1123 host_impl_->StartPageScaleAnimation(gfx::Vector2d(), false, 2.f, duration); |
| 1124 EXPECT_FALSE(did_request_redraw_); |
| 1125 EXPECT_TRUE(did_request_animate_); |
| 1126 |
| 1115 did_request_redraw_ = false; | 1127 did_request_redraw_ = false; |
| 1128 did_request_animate_ = false; |
| 1116 host_impl_->Animate(start_time); | 1129 host_impl_->Animate(start_time); |
| 1117 EXPECT_TRUE(did_request_redraw_); | 1130 EXPECT_TRUE(did_request_redraw_); |
| 1131 EXPECT_TRUE(did_request_animate_); |
| 1118 | 1132 |
| 1119 did_request_redraw_ = false; | 1133 did_request_redraw_ = false; |
| 1134 did_request_animate_ = false; |
| 1120 host_impl_->Animate(halfway_through_animation); | 1135 host_impl_->Animate(halfway_through_animation); |
| 1121 EXPECT_TRUE(did_request_redraw_); | 1136 EXPECT_TRUE(did_request_redraw_); |
| 1137 EXPECT_TRUE(did_request_animate_); |
| 1122 | 1138 |
| 1123 did_request_redraw_ = false; | 1139 did_request_redraw_ = false; |
| 1140 did_request_animate_ = false; |
| 1124 did_request_commit_ = false; | 1141 did_request_commit_ = false; |
| 1125 host_impl_->Animate(end_time); | 1142 host_impl_->Animate(end_time); |
| 1126 EXPECT_TRUE(did_request_commit_); | 1143 EXPECT_TRUE(did_request_commit_); |
| 1144 EXPECT_FALSE(did_request_animate_); |
| 1127 | 1145 |
| 1128 scoped_ptr<ScrollAndScaleSet> scroll_info = | 1146 scoped_ptr<ScrollAndScaleSet> scroll_info = |
| 1129 host_impl_->ProcessScrollDeltas(); | 1147 host_impl_->ProcessScrollDeltas(); |
| 1130 EXPECT_EQ(scroll_info->page_scale_delta, 2); | 1148 EXPECT_EQ(scroll_info->page_scale_delta, 2); |
| 1131 ExpectContains(*scroll_info, scroll_layer->id(), gfx::Vector2d(-50, -50)); | 1149 ExpectContains(*scroll_info, scroll_layer->id(), gfx::Vector2d(-50, -50)); |
| 1132 } | 1150 } |
| 1133 | 1151 |
| 1134 // Anchor zoom-out | 1152 // Anchor zoom-out |
| 1135 { | 1153 { |
| 1136 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, | 1154 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, |
| 1137 min_page_scale, | 1155 min_page_scale, |
| 1138 max_page_scale); | 1156 max_page_scale); |
| 1139 scroll_layer->SetScrollOffset(gfx::Vector2d(50, 50)); | 1157 scroll_layer->SetScrollOffset(gfx::Vector2d(50, 50)); |
| 1140 | 1158 |
| 1159 did_request_redraw_ = false; |
| 1160 did_request_animate_ = false; |
| 1141 host_impl_->StartPageScaleAnimation( | 1161 host_impl_->StartPageScaleAnimation( |
| 1142 gfx::Vector2d(25, 25), true, min_page_scale, duration); | 1162 gfx::Vector2d(25, 25), true, min_page_scale, duration); |
| 1163 EXPECT_FALSE(did_request_redraw_); |
| 1164 EXPECT_TRUE(did_request_animate_); |
| 1165 |
| 1143 did_request_redraw_ = false; | 1166 did_request_redraw_ = false; |
| 1167 did_request_animate_ = false; |
| 1144 host_impl_->Animate(start_time); | 1168 host_impl_->Animate(start_time); |
| 1145 EXPECT_TRUE(did_request_redraw_); | 1169 EXPECT_TRUE(did_request_redraw_); |
| 1170 EXPECT_TRUE(did_request_animate_); |
| 1146 | 1171 |
| 1147 did_request_redraw_ = false; | 1172 did_request_redraw_ = false; |
| 1148 did_request_commit_ = false; | 1173 did_request_commit_ = false; |
| 1174 did_request_animate_ = false; |
| 1149 host_impl_->Animate(end_time); | 1175 host_impl_->Animate(end_time); |
| 1150 EXPECT_TRUE(did_request_redraw_); | 1176 EXPECT_TRUE(did_request_redraw_); |
| 1177 EXPECT_FALSE(did_request_animate_); |
| 1151 EXPECT_TRUE(did_request_commit_); | 1178 EXPECT_TRUE(did_request_commit_); |
| 1152 | 1179 |
| 1153 scoped_ptr<ScrollAndScaleSet> scroll_info = | 1180 scoped_ptr<ScrollAndScaleSet> scroll_info = |
| 1154 host_impl_->ProcessScrollDeltas(); | 1181 host_impl_->ProcessScrollDeltas(); |
| 1155 EXPECT_EQ(scroll_info->page_scale_delta, min_page_scale); | 1182 EXPECT_EQ(scroll_info->page_scale_delta, min_page_scale); |
| 1156 // Pushed to (0,0) via clamping against contents layer size. | 1183 // Pushed to (0,0) via clamping against contents layer size. |
| 1157 ExpectContains(*scroll_info, scroll_layer->id(), gfx::Vector2d(-50, -50)); | 1184 ExpectContains(*scroll_info, scroll_layer->id(), gfx::Vector2d(-50, -50)); |
| 1158 } | 1185 } |
| 1159 } | 1186 } |
| 1160 | 1187 |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1294 host_impl_->ScrollEnd(); | 1321 host_impl_->ScrollEnd(); |
| 1295 host_impl_->StartScrollbarAnimation(); | 1322 host_impl_->StartScrollbarAnimation(); |
| 1296 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1323 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1297 EXPECT_FALSE(did_request_redraw_); | 1324 EXPECT_FALSE(did_request_redraw_); |
| 1298 | 1325 |
| 1299 // After a scroll, a fade animation should be scheduled about 20ms from now. | 1326 // After a scroll, a fade animation should be scheduled about 20ms from now. |
| 1300 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); | 1327 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); |
| 1301 host_impl_->ScrollBy(gfx::Point(), gfx::Vector2dF(5, 0)); | 1328 host_impl_->ScrollBy(gfx::Point(), gfx::Vector2dF(5, 0)); |
| 1302 host_impl_->ScrollEnd(); | 1329 host_impl_->ScrollEnd(); |
| 1303 did_request_redraw_ = false; | 1330 did_request_redraw_ = false; |
| 1331 did_request_animate_ = false; |
| 1304 host_impl_->StartScrollbarAnimation(); | 1332 host_impl_->StartScrollbarAnimation(); |
| 1305 EXPECT_LT(base::TimeDelta::FromMilliseconds(19), | 1333 EXPECT_LT(base::TimeDelta::FromMilliseconds(19), |
| 1306 requested_scrollbar_animation_delay_); | 1334 requested_scrollbar_animation_delay_); |
| 1307 EXPECT_FALSE(did_request_redraw_); | 1335 EXPECT_FALSE(did_request_redraw_); |
| 1336 EXPECT_FALSE(did_request_animate_); |
| 1308 requested_scrollbar_animation_delay_ = base::TimeDelta(); | 1337 requested_scrollbar_animation_delay_ = base::TimeDelta(); |
| 1309 | 1338 |
| 1310 // After the fade begins, we should start getting redraws instead of a | 1339 // After the fade begins, we should start getting redraws instead of a |
| 1311 // scheduled animation. | 1340 // scheduled animation. |
| 1312 fake_now += base::TimeDelta::FromMilliseconds(25); | 1341 fake_now += base::TimeDelta::FromMilliseconds(25); |
| 1313 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); | 1342 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); |
| 1314 host_impl_->StartScrollbarAnimation(); | 1343 host_impl_->StartScrollbarAnimation(); |
| 1315 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1344 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1316 EXPECT_TRUE(did_request_redraw_); | 1345 EXPECT_TRUE(did_request_animate_); |
| 1317 did_request_redraw_ = false; | 1346 did_request_animate_ = false; |
| 1318 | 1347 |
| 1319 // If no scroll happened recently, StartScrollbarAnimation should have no | 1348 // If no scroll happened recently, StartScrollbarAnimation should have no |
| 1320 // effect. | 1349 // effect. |
| 1321 fake_now += base::TimeDelta::FromMilliseconds(25); | 1350 fake_now += base::TimeDelta::FromMilliseconds(25); |
| 1322 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); | 1351 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); |
| 1323 host_impl_->StartScrollbarAnimation(); | 1352 host_impl_->StartScrollbarAnimation(); |
| 1324 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1353 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1325 EXPECT_FALSE(did_request_redraw_); | 1354 EXPECT_FALSE(did_request_redraw_); |
| 1326 | 1355 |
| 1327 // Setting the scroll offset outside a scroll should also cause the scrollbar | 1356 // Setting the scroll offset outside a scroll should also cause the scrollbar |
| 1328 // to appear and to schedule a fade. | 1357 // to appear and to schedule a fade. |
| 1329 host_impl_->InnerViewportScrollLayer()->SetScrollOffset(gfx::Vector2d(5, 5)); | 1358 host_impl_->InnerViewportScrollLayer()->SetScrollOffset(gfx::Vector2d(5, 5)); |
| 1330 host_impl_->StartScrollbarAnimation(); | 1359 host_impl_->StartScrollbarAnimation(); |
| 1331 EXPECT_LT(base::TimeDelta::FromMilliseconds(19), | 1360 EXPECT_LT(base::TimeDelta::FromMilliseconds(19), |
| 1332 requested_scrollbar_animation_delay_); | 1361 requested_scrollbar_animation_delay_); |
| 1333 EXPECT_FALSE(did_request_redraw_); | 1362 EXPECT_FALSE(did_request_redraw_); |
| 1363 EXPECT_FALSE(did_request_animate_); |
| 1334 requested_scrollbar_animation_delay_ = base::TimeDelta(); | 1364 requested_scrollbar_animation_delay_ = base::TimeDelta(); |
| 1335 | 1365 |
| 1336 // None of the above should have called CurrentFrameTimeTicks, so if we call | 1366 // None of the above should have called CurrentFrameTimeTicks, so if we call |
| 1337 // it now we should get the current time. | 1367 // it now we should get the current time. |
| 1338 fake_now += base::TimeDelta::FromMilliseconds(10); | 1368 fake_now += base::TimeDelta::FromMilliseconds(10); |
| 1339 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); | 1369 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); |
| 1340 EXPECT_EQ(fake_now, host_impl_->CurrentFrameTimeTicks()); | 1370 EXPECT_EQ(fake_now, host_impl_->CurrentFrameTimeTicks()); |
| 1341 } | 1371 } |
| 1342 | 1372 |
| 1343 TEST_F(LayerTreeHostImplTest, ScrollbarFadePinchZoomScrollbars) { | 1373 TEST_F(LayerTreeHostImplTest, ScrollbarFadePinchZoomScrollbars) { |
| 1344 LayerTreeSettings settings; | 1374 LayerTreeSettings settings; |
| 1345 settings.scrollbar_animator = LayerTreeSettings::LinearFade; | 1375 settings.scrollbar_animator = LayerTreeSettings::LinearFade; |
| 1346 settings.scrollbar_linear_fade_delay_ms = 20; | 1376 settings.scrollbar_linear_fade_delay_ms = 20; |
| 1347 settings.scrollbar_linear_fade_length_ms = 20; | 1377 settings.scrollbar_linear_fade_length_ms = 20; |
| 1348 settings.use_pinch_zoom_scrollbars = true; | 1378 settings.use_pinch_zoom_scrollbars = true; |
| 1349 | 1379 |
| 1350 SETUP_LAYERS_FOR_SCROLLBAR_ANIMATION_TEST(); | 1380 SETUP_LAYERS_FOR_SCROLLBAR_ANIMATION_TEST(); |
| 1351 | 1381 |
| 1352 base::TimeTicks fake_now = gfx::FrameTime::Now(); | 1382 base::TimeTicks fake_now = gfx::FrameTime::Now(); |
| 1353 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); | 1383 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); |
| 1354 | 1384 |
| 1355 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 1.f, 4.f); | 1385 host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 1.f, 4.f); |
| 1356 | 1386 |
| 1357 // If no scroll happened recently, StartScrollbarAnimation should have no | 1387 // If no scroll happened recently, StartScrollbarAnimation should have no |
| 1358 // effect. | 1388 // effect. |
| 1359 host_impl_->StartScrollbarAnimation(); | 1389 host_impl_->StartScrollbarAnimation(); |
| 1360 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1390 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1361 EXPECT_FALSE(did_request_redraw_); | 1391 EXPECT_FALSE(did_request_animate_); |
| 1362 | 1392 |
| 1363 // If no scroll happened during a scroll gesture, StartScrollbarAnimation | 1393 // If no scroll happened during a scroll gesture, StartScrollbarAnimation |
| 1364 // should have no effect. | 1394 // should have no effect. |
| 1365 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); | 1395 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); |
| 1366 host_impl_->ScrollEnd(); | 1396 host_impl_->ScrollEnd(); |
| 1367 host_impl_->StartScrollbarAnimation(); | 1397 host_impl_->StartScrollbarAnimation(); |
| 1368 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1398 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1369 EXPECT_FALSE(did_request_redraw_); | 1399 EXPECT_FALSE(did_request_animate_); |
| 1370 | 1400 |
| 1371 // After a scroll, no fade animation should be scheduled. | 1401 // After a scroll, no fade animation should be scheduled. |
| 1372 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); | 1402 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); |
| 1373 host_impl_->ScrollBy(gfx::Point(), gfx::Vector2dF(5, 0)); | 1403 host_impl_->ScrollBy(gfx::Point(), gfx::Vector2dF(5, 0)); |
| 1374 host_impl_->ScrollEnd(); | 1404 host_impl_->ScrollEnd(); |
| 1375 did_request_redraw_ = false; | 1405 did_request_redraw_ = false; |
| 1376 host_impl_->StartScrollbarAnimation(); | 1406 host_impl_->StartScrollbarAnimation(); |
| 1377 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1407 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1378 EXPECT_FALSE(did_request_redraw_); | 1408 EXPECT_FALSE(did_request_animate_); |
| 1379 requested_scrollbar_animation_delay_ = base::TimeDelta(); | 1409 requested_scrollbar_animation_delay_ = base::TimeDelta(); |
| 1380 | 1410 |
| 1381 // We should not see any draw requests. | 1411 // We should not see any draw requests. |
| 1382 fake_now += base::TimeDelta::FromMilliseconds(25); | 1412 fake_now += base::TimeDelta::FromMilliseconds(25); |
| 1383 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); | 1413 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); |
| 1384 host_impl_->StartScrollbarAnimation(); | 1414 host_impl_->StartScrollbarAnimation(); |
| 1385 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1415 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1386 EXPECT_FALSE(did_request_redraw_); | 1416 EXPECT_FALSE(did_request_animate_); |
| 1387 | 1417 |
| 1388 // Make page scale > min so that subsequent scrolls will trigger fades. | 1418 // Make page scale > min so that subsequent scrolls will trigger fades. |
| 1389 host_impl_->active_tree()->SetPageScaleDelta(1.1f); | 1419 host_impl_->active_tree()->SetPageScaleDelta(1.1f); |
| 1390 | 1420 |
| 1391 // After a scroll, a fade animation should be scheduled about 20ms from now. | 1421 // After a scroll, a fade animation should be scheduled about 20ms from now. |
| 1392 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); | 1422 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel); |
| 1393 host_impl_->ScrollBy(gfx::Point(), gfx::Vector2dF(5, 0)); | 1423 host_impl_->ScrollBy(gfx::Point(), gfx::Vector2dF(5, 0)); |
| 1394 host_impl_->ScrollEnd(); | 1424 host_impl_->ScrollEnd(); |
| 1395 did_request_redraw_ = false; | 1425 did_request_redraw_ = false; |
| 1396 host_impl_->StartScrollbarAnimation(); | 1426 host_impl_->StartScrollbarAnimation(); |
| 1397 EXPECT_LT(base::TimeDelta::FromMilliseconds(19), | 1427 EXPECT_LT(base::TimeDelta::FromMilliseconds(19), |
| 1398 requested_scrollbar_animation_delay_); | 1428 requested_scrollbar_animation_delay_); |
| 1399 EXPECT_FALSE(did_request_redraw_); | 1429 EXPECT_FALSE(did_request_animate_); |
| 1400 requested_scrollbar_animation_delay_ = base::TimeDelta(); | 1430 requested_scrollbar_animation_delay_ = base::TimeDelta(); |
| 1401 | 1431 |
| 1402 // After the fade begins, we should start getting redraws instead of a | 1432 // After the fade begins, we should start getting redraws instead of a |
| 1403 // scheduled animation. | 1433 // scheduled animation. |
| 1404 fake_now += base::TimeDelta::FromMilliseconds(25); | 1434 fake_now += base::TimeDelta::FromMilliseconds(25); |
| 1405 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); | 1435 host_impl_override_time->SetCurrentPhysicalTimeTicksForTest(fake_now); |
| 1406 host_impl_->StartScrollbarAnimation(); | 1436 host_impl_->StartScrollbarAnimation(); |
| 1407 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); | 1437 EXPECT_EQ(base::TimeDelta(), requested_scrollbar_animation_delay_); |
| 1408 EXPECT_TRUE(did_request_redraw_); | 1438 EXPECT_TRUE(did_request_animate_); |
| 1409 } | 1439 } |
| 1410 | 1440 |
| 1411 void LayerTreeHostImplTest::SetupMouseMoveAtWithDeviceScale( | 1441 void LayerTreeHostImplTest::SetupMouseMoveAtWithDeviceScale( |
| 1412 float device_scale_factor) { | 1442 float device_scale_factor) { |
| 1413 LayerTreeSettings settings; | 1443 LayerTreeSettings settings; |
| 1414 settings.scrollbar_animator = LayerTreeSettings::Thinning; | 1444 settings.scrollbar_animator = LayerTreeSettings::Thinning; |
| 1415 | 1445 |
| 1416 gfx::Size viewport_size(300, 200); | 1446 gfx::Size viewport_size(300, 200); |
| 1417 gfx::Size device_viewport_size = gfx::ToFlooredSize( | 1447 gfx::Size device_viewport_size = gfx::ToFlooredSize( |
| 1418 gfx::ScaleSize(viewport_size, device_scale_factor)); | 1448 gfx::ScaleSize(viewport_size, device_scale_factor)); |
| (...skipping 4977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6396 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes, | 6426 EXPECT_EQ(host_impl_->global_tile_state().hard_memory_limit_in_bytes, |
| 6397 300u * 1024u * 1024u); | 6427 300u * 1024u * 1024u); |
| 6398 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes, | 6428 EXPECT_EQ(host_impl_->global_tile_state().soft_memory_limit_in_bytes, |
| 6399 150u * 1024u * 1024u); | 6429 150u * 1024u * 1024u); |
| 6400 EXPECT_EQ(host_impl_->global_tile_state().unused_memory_limit_in_bytes, | 6430 EXPECT_EQ(host_impl_->global_tile_state().unused_memory_limit_in_bytes, |
| 6401 75u * 1024u * 1024u); | 6431 75u * 1024u * 1024u); |
| 6402 } | 6432 } |
| 6403 | 6433 |
| 6404 } // namespace | 6434 } // namespace |
| 6405 } // namespace cc | 6435 } // namespace cc |
| OLD | NEW |