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

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

Issue 2816923002: change overlay scrollbar hover show to hover fade in (Closed)
Patch Set: bokan comment addressed Created 3 years, 8 months 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
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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 2852 matching lines...) Expand 10 before | Expand all | Expand 10 after
2863 DrawFrame(); 2863 DrawFrame();
2864 2864
2865 // SetScrollLayerId will initialize the scrollbar which will cause it to 2865 // SetScrollLayerId will initialize the scrollbar which will cause it to
2866 // show and request a redraw. 2866 // show and request a redraw.
2867 did_request_redraw_ = false; 2867 did_request_redraw_ = false;
2868 } 2868 }
2869 2869
2870 void RunTest(LayerTreeSettings::ScrollbarAnimator animator) { 2870 void RunTest(LayerTreeSettings::ScrollbarAnimator animator) {
2871 LayerTreeSettings settings = DefaultSettings(); 2871 LayerTreeSettings settings = DefaultSettings();
2872 settings.scrollbar_animator = animator; 2872 settings.scrollbar_animator = animator;
2873 settings.scrollbar_show_delay = base::TimeDelta::FromMilliseconds(20); 2873 settings.scrollbar_fade_in_delay = base::TimeDelta::FromMilliseconds(20);
2874 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20); 2874 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20);
2875 settings.scrollbar_fade_out_resize_delay = 2875 settings.scrollbar_fade_out_resize_delay =
2876 base::TimeDelta::FromMilliseconds(20); 2876 base::TimeDelta::FromMilliseconds(20);
2877 settings.scrollbar_fade_in_duration = base::TimeDelta::FromMilliseconds(20);
2877 settings.scrollbar_fade_out_duration = 2878 settings.scrollbar_fade_out_duration =
2878 base::TimeDelta::FromMilliseconds(20); 2879 base::TimeDelta::FromMilliseconds(20);
2879 2880
2880 // If no animator is set, scrollbar won't show and no animation is expected. 2881 // If no animator is set, scrollbar won't show and no animation is expected.
2881 bool expecting_animations = animator != LayerTreeSettings::NO_ANIMATOR; 2882 bool expecting_animations = animator != LayerTreeSettings::NO_ANIMATOR;
2882 2883
2883 SetupLayers(settings); 2884 SetupLayers(settings);
2884 2885
2885 base::TimeTicks fake_now = base::TimeTicks::Now(); 2886 base::TimeTicks fake_now = base::TimeTicks::Now();
2886 2887
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
3087 3088
3088 TEST_F(LayerTreeHostImplTestScrollbarAnimation, NoAnimator) { 3089 TEST_F(LayerTreeHostImplTestScrollbarAnimation, NoAnimator) {
3089 RunTest(LayerTreeSettings::NO_ANIMATOR); 3090 RunTest(LayerTreeSettings::NO_ANIMATOR);
3090 } 3091 }
3091 3092
3092 class LayerTreeHostImplTestScrollbarOpacity : public LayerTreeHostImplTest { 3093 class LayerTreeHostImplTestScrollbarOpacity : public LayerTreeHostImplTest {
3093 protected: 3094 protected:
3094 void RunTest(LayerTreeSettings::ScrollbarAnimator animator) { 3095 void RunTest(LayerTreeSettings::ScrollbarAnimator animator) {
3095 LayerTreeSettings settings = DefaultSettings(); 3096 LayerTreeSettings settings = DefaultSettings();
3096 settings.scrollbar_animator = animator; 3097 settings.scrollbar_animator = animator;
3097 settings.scrollbar_show_delay = base::TimeDelta::FromMilliseconds(20); 3098 settings.scrollbar_fade_in_delay = base::TimeDelta::FromMilliseconds(20);
3098 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20); 3099 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20);
3100 settings.scrollbar_fade_in_duration = base::TimeDelta::FromMilliseconds(20);
3099 settings.scrollbar_fade_out_duration = 3101 settings.scrollbar_fade_out_duration =
3100 base::TimeDelta::FromMilliseconds(20); 3102 base::TimeDelta::FromMilliseconds(20);
3101 gfx::Size content_size(100, 100); 3103 gfx::Size content_size(100, 100);
3102 3104
3103 // If no animator is set, scrollbar won't show and no animation is expected. 3105 // If no animator is set, scrollbar won't show and no animation is expected.
3104 bool expecting_animations = animator != LayerTreeSettings::NO_ANIMATOR; 3106 bool expecting_animations = animator != LayerTreeSettings::NO_ANIMATOR;
3105 3107
3106 CreateHostImpl(settings, CreateCompositorFrameSink()); 3108 CreateHostImpl(settings, CreateCompositorFrameSink());
3107 host_impl_->CreatePendingTree(); 3109 host_impl_->CreatePendingTree();
3108 CreateScrollAndContentsLayers(host_impl_->pending_tree(), content_size); 3110 CreateScrollAndContentsLayers(host_impl_->pending_tree(), content_size);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
3186 RunTest(LayerTreeSettings::AURA_OVERLAY); 3188 RunTest(LayerTreeSettings::AURA_OVERLAY);
3187 } 3189 }
3188 3190
3189 TEST_F(LayerTreeHostImplTestScrollbarOpacity, NoAnimator) { 3191 TEST_F(LayerTreeHostImplTestScrollbarOpacity, NoAnimator) {
3190 RunTest(LayerTreeSettings::NO_ANIMATOR); 3192 RunTest(LayerTreeSettings::NO_ANIMATOR);
3191 } 3193 }
3192 3194
3193 TEST_F(LayerTreeHostImplTest, ScrollbarVisibilityChangeCausesRedrawAndCommit) { 3195 TEST_F(LayerTreeHostImplTest, ScrollbarVisibilityChangeCausesRedrawAndCommit) {
3194 LayerTreeSettings settings = DefaultSettings(); 3196 LayerTreeSettings settings = DefaultSettings();
3195 settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY; 3197 settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
3196 settings.scrollbar_show_delay = base::TimeDelta::FromMilliseconds(20); 3198 settings.scrollbar_fade_in_delay = base::TimeDelta::FromMilliseconds(20);
3197 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20); 3199 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20);
3200 settings.scrollbar_fade_in_duration = base::TimeDelta::FromMilliseconds(20);
3198 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(20); 3201 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(20);
3199 gfx::Size content_size(100, 100); 3202 gfx::Size content_size(100, 100);
3200 3203
3201 CreateHostImpl(settings, CreateCompositorFrameSink()); 3204 CreateHostImpl(settings, CreateCompositorFrameSink());
3202 host_impl_->CreatePendingTree(); 3205 host_impl_->CreatePendingTree();
3203 CreateScrollAndContentsLayers(host_impl_->pending_tree(), content_size); 3206 CreateScrollAndContentsLayers(host_impl_->pending_tree(), content_size);
3204 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar = 3207 std::unique_ptr<SolidColorScrollbarLayerImpl> scrollbar =
3205 SolidColorScrollbarLayerImpl::Create(host_impl_->pending_tree(), 400, 3208 SolidColorScrollbarLayerImpl::Create(host_impl_->pending_tree(), 400,
3206 VERTICAL, 10, 0, false, true); 3209 VERTICAL, 10, 0, false, true);
3207 scrollbar->test_properties()->opacity = 0.f; 3210 scrollbar->test_properties()->opacity = 0.f;
(...skipping 17 matching lines...) Expand all
3225 animation_task_.Run(); 3228 animation_task_.Run();
3226 3229
3227 base::TimeTicks fake_now = base::TimeTicks::Now(); 3230 base::TimeTicks fake_now = base::TimeTicks::Now();
3228 scrollbar_controller->Animate(fake_now); 3231 scrollbar_controller->Animate(fake_now);
3229 fake_now += settings.scrollbar_fade_out_delay; 3232 fake_now += settings.scrollbar_fade_out_delay;
3230 scrollbar_controller->Animate(fake_now); 3233 scrollbar_controller->Animate(fake_now);
3231 3234
3232 ASSERT_TRUE(scrollbar_controller->ScrollbarsHidden()); 3235 ASSERT_TRUE(scrollbar_controller->ScrollbarsHidden());
3233 } 3236 }
3234 3237
3235 // Move the mouse over the scrollbar region. This should post a delayed show 3238 // Move the mouse over the scrollbar region. This should post a delayed fade
3236 // task. Execute it to show the scrollbars. 3239 // in task. Execute it to show the scrollbars.
3237 { 3240 {
3238 animation_task_ = base::Closure(); 3241 animation_task_ = base::Closure();
3239 scrollbar_controller->DidMouseMoveNear(VERTICAL, 0); 3242 scrollbar_controller->DidMouseMoveNear(VERTICAL, 0);
3240 ASSERT_FALSE(animation_task_.Equals(base::Closure())); 3243 ASSERT_FALSE(animation_task_.Equals(base::Closure()));
3241 ASSERT_FALSE(animation_task_.IsCancelled()); 3244 ASSERT_FALSE(animation_task_.IsCancelled());
3242 } 3245 }
3243 3246
3244 // The show task should cause the scrollbars to show. Ensure that we 3247 // The fade in task should cause the scrollbars to show. Ensure that we
3245 // requested a redraw and a commit. 3248 // requested a redraw and a commit.
3246 { 3249 {
3247 did_request_redraw_ = false; 3250 did_request_redraw_ = false;
3248 did_request_commit_ = false; 3251 did_request_commit_ = false;
3249 ASSERT_TRUE(scrollbar_controller->ScrollbarsHidden()); 3252 ASSERT_TRUE(scrollbar_controller->ScrollbarsHidden());
3250 animation_task_.Run(); 3253 animation_task_.Run();
3254
3255 base::TimeTicks fake_now = base::TimeTicks::Now();
3256 scrollbar_controller->Animate(fake_now);
3257 fake_now += settings.scrollbar_fade_in_duration;
3258 scrollbar_controller->Animate(fake_now);
3259
3251 ASSERT_FALSE(scrollbar_controller->ScrollbarsHidden()); 3260 ASSERT_FALSE(scrollbar_controller->ScrollbarsHidden());
3252 EXPECT_TRUE(did_request_redraw_); 3261 EXPECT_TRUE(did_request_redraw_);
3253 EXPECT_TRUE(did_request_commit_); 3262 EXPECT_TRUE(did_request_commit_);
3254 } 3263 }
3255 } 3264 }
3256 3265
3257 TEST_F(LayerTreeHostImplTest, ScrollbarInnerLargerThanOuter) { 3266 TEST_F(LayerTreeHostImplTest, ScrollbarInnerLargerThanOuter) {
3258 LayerTreeSettings settings = DefaultSettings(); 3267 LayerTreeSettings settings = DefaultSettings();
3259 CreateHostImpl(settings, CreateCompositorFrameSink()); 3268 CreateHostImpl(settings, CreateCompositorFrameSink());
3260 3269
(...skipping 23 matching lines...) Expand all
3284 child->SetBounds(inner_viewport_size); 3293 child->SetBounds(inner_viewport_size);
3285 3294
3286 horiz_scrollbar->SetScrollLayerId(root_scroll->id()); 3295 horiz_scrollbar->SetScrollLayerId(root_scroll->id());
3287 3296
3288 EXPECT_EQ(300, horiz_scrollbar->clip_layer_length()); 3297 EXPECT_EQ(300, horiz_scrollbar->clip_layer_length());
3289 } 3298 }
3290 3299
3291 TEST_F(LayerTreeHostImplTest, ScrollbarRegistration) { 3300 TEST_F(LayerTreeHostImplTest, ScrollbarRegistration) {
3292 LayerTreeSettings settings = DefaultSettings(); 3301 LayerTreeSettings settings = DefaultSettings();
3293 settings.scrollbar_animator = LayerTreeSettings::ANDROID_OVERLAY; 3302 settings.scrollbar_animator = LayerTreeSettings::ANDROID_OVERLAY;
3294 settings.scrollbar_show_delay = base::TimeDelta::FromMilliseconds(20); 3303 settings.scrollbar_fade_in_delay = base::TimeDelta::FromMilliseconds(20);
3295 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20); 3304 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(20);
3305 settings.scrollbar_fade_in_duration = base::TimeDelta::FromMilliseconds(20);
3296 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(20); 3306 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(20);
3297 CreateHostImpl(settings, CreateCompositorFrameSink()); 3307 CreateHostImpl(settings, CreateCompositorFrameSink());
3298 3308
3299 gfx::Size viewport_size(300, 200); 3309 gfx::Size viewport_size(300, 200);
3300 gfx::Size content_size(1000, 1000); 3310 gfx::Size content_size(1000, 1000);
3301 3311
3302 const int vert_1_id = 10; 3312 const int vert_1_id = 10;
3303 const int horiz_1_id = 11; 3313 const int horiz_1_id = 11;
3304 const int vert_2_id = 12; 3314 const int vert_2_id = 12;
3305 const int horiz_2_id = 13; 3315 const int horiz_2_id = 13;
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
3406 host_impl_->active_tree()->InnerViewportScrollLayer()->SetCurrentScrollOffset( 3416 host_impl_->active_tree()->InnerViewportScrollLayer()->SetCurrentScrollOffset(
3407 gfx::ScrollOffset(20, 20)); 3417 gfx::ScrollOffset(20, 20));
3408 EXPECT_TRUE(animation_task_.Equals(base::Closure())); 3418 EXPECT_TRUE(animation_task_.Equals(base::Closure()));
3409 child_ptr->SetCurrentScrollOffset(gfx::ScrollOffset(20, 20)); 3419 child_ptr->SetCurrentScrollOffset(gfx::ScrollOffset(20, 20));
3410 EXPECT_TRUE(animation_task_.Equals(base::Closure())); 3420 EXPECT_TRUE(animation_task_.Equals(base::Closure()));
3411 } 3421 }
3412 3422
3413 void LayerTreeHostImplTest::SetupMouseMoveAtWithDeviceScale( 3423 void LayerTreeHostImplTest::SetupMouseMoveAtWithDeviceScale(
3414 float device_scale_factor) { 3424 float device_scale_factor) {
3415 LayerTreeSettings settings = DefaultSettings(); 3425 LayerTreeSettings settings = DefaultSettings();
3416 settings.scrollbar_show_delay = base::TimeDelta::FromMilliseconds(500); 3426 settings.scrollbar_fade_in_delay = base::TimeDelta::FromMilliseconds(500);
3417 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(500); 3427 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(500);
3428 settings.scrollbar_fade_in_duration = base::TimeDelta::FromMilliseconds(500);
3418 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(300); 3429 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(300);
3419 settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY; 3430 settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
3420 3431
3421 gfx::Size viewport_size(300, 200); 3432 gfx::Size viewport_size(300, 200);
3422 gfx::Size device_viewport_size = 3433 gfx::Size device_viewport_size =
3423 gfx::ScaleToFlooredSize(viewport_size, device_scale_factor); 3434 gfx::ScaleToFlooredSize(viewport_size, device_scale_factor);
3424 gfx::Size content_size(1000, 1000); 3435 gfx::Size content_size(1000, 1000);
3425 gfx::Size scrollbar_size(gfx::Size(15, viewport_size.height())); 3436 gfx::Size scrollbar_size(gfx::Size(15, viewport_size.height()));
3426 3437
3427 CreateHostImpl(settings, CreateCompositorFrameSink()); 3438 CreateHostImpl(settings, CreateCompositorFrameSink());
(...skipping 8597 matching lines...) Expand 10 before | Expand all | Expand 10 after
12025 12036
12026 // Re-initialize with a software output surface. 12037 // Re-initialize with a software output surface.
12027 compositor_frame_sink_ = FakeCompositorFrameSink::CreateSoftware(); 12038 compositor_frame_sink_ = FakeCompositorFrameSink::CreateSoftware();
12028 host_impl_->InitializeRenderer(compositor_frame_sink_.get()); 12039 host_impl_->InitializeRenderer(compositor_frame_sink_.get());
12029 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); 12040 EXPECT_FALSE(host_impl_->use_gpu_rasterization());
12030 } 12041 }
12031 12042
12032 void LayerTreeHostImplTest::SetupMouseMoveAtTestScrollbarStates( 12043 void LayerTreeHostImplTest::SetupMouseMoveAtTestScrollbarStates(
12033 bool main_thread_scrolling) { 12044 bool main_thread_scrolling) {
12034 LayerTreeSettings settings = DefaultSettings(); 12045 LayerTreeSettings settings = DefaultSettings();
12035 settings.scrollbar_show_delay = base::TimeDelta::FromMilliseconds(500); 12046 settings.scrollbar_fade_in_delay = base::TimeDelta::FromMilliseconds(500);
12036 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(500); 12047 settings.scrollbar_fade_out_delay = base::TimeDelta::FromMilliseconds(500);
12048 settings.scrollbar_fade_in_duration = base::TimeDelta::FromMilliseconds(500);
12037 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(300); 12049 settings.scrollbar_fade_out_duration = base::TimeDelta::FromMilliseconds(300);
12038 settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY; 12050 settings.scrollbar_animator = LayerTreeSettings::AURA_OVERLAY;
12039 12051
12040 gfx::Size viewport_size(300, 200); 12052 gfx::Size viewport_size(300, 200);
12041 gfx::Size content_size(1000, 1000); 12053 gfx::Size content_size(1000, 1000);
12042 gfx::Size child_layer_size(250, 150); 12054 gfx::Size child_layer_size(250, 150);
12043 gfx::Size scrollbar_size_1(gfx::Size(15, viewport_size.height())); 12055 gfx::Size scrollbar_size_1(gfx::Size(15, viewport_size.height()));
12044 gfx::Size scrollbar_size_2(gfx::Size(15, child_layer_size.height())); 12056 gfx::Size scrollbar_size_2(gfx::Size(15, child_layer_size.height()));
12045 12057
12046 const int scrollbar_1_id = 10; 12058 const int scrollbar_1_id = 10;
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
12296 else 12308 else
12297 EXPECT_FALSE(tile->HasRasterTask()); 12309 EXPECT_FALSE(tile->HasRasterTask());
12298 } 12310 }
12299 Region expected_invalidation( 12311 Region expected_invalidation(
12300 raster_source->GetRectForImage(checkerable_image->uniqueID())); 12312 raster_source->GetRectForImage(checkerable_image->uniqueID()));
12301 EXPECT_EQ(expected_invalidation, *(root->GetPendingInvalidation())); 12313 EXPECT_EQ(expected_invalidation, *(root->GetPendingInvalidation()));
12302 } 12314 }
12303 12315
12304 } // namespace 12316 } // namespace
12305 } // namespace cc 12317 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698