diff options
author | ljagielski <ljagielski@opera.com> | 2015-01-07 12:32:55 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-07 20:34:29 +0000 |
commit | 205709806da5c07eb640fe256d473f1a64f56e44 (patch) | |
tree | 25650476f06b480ca1be13cd97223007905dff5e /ui/wm | |
parent | b639aca53effcba6978bd37c829745b6a84699cf (diff) | |
download | chromium_src-205709806da5c07eb640fe256d473f1a64f56e44.zip chromium_src-205709806da5c07eb640fe256d473f1a64f56e44.tar.gz chromium_src-205709806da5c07eb640fe256d473f1a64f56e44.tar.bz2 |
LayerAnimator should withdraw from processing animation queue when its delegate becomes nullptr.
BUG=
Review URL: https://codereview.chromium.org/795113002
Cr-Commit-Position: refs/heads/master@{#310354}
Diffstat (limited to 'ui/wm')
-rw-r--r-- | ui/wm/core/window_animations_unittest.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ui/wm/core/window_animations_unittest.cc b/ui/wm/core/window_animations_unittest.cc index 2739fd0..ef642c0 100644 --- a/ui/wm/core/window_animations_unittest.cc +++ b/ui/wm/core/window_animations_unittest.cc @@ -300,4 +300,21 @@ TEST_F(WindowAnimationsTest, RotateHideNoLeak) { animating_layer->GetAnimator()->StopAnimating(); } +// The rotation animation for hiding a window should not crash when terminated +// by LayerAnimator::StopAnimating(). +TEST_F(WindowAnimationsTest, RotateHideNoCrash) { + ui::ScopedAnimationDurationScaleMode scale_mode( + ui::ScopedAnimationDurationScaleMode::FAST_DURATION); + + scoped_ptr<aura::Window> window(aura::test::CreateTestWindowWithId(0, NULL)); + ui::Layer* animating_layer = window->layer(); + wm::SetWindowVisibilityAnimationType(window.get(), + WINDOW_VISIBILITY_ANIMATION_TYPE_ROTATE); + AnimateOnChildWindowVisibilityChanged(window.get(), true); + window->layer()->GetAnimator()->Step(base::TimeTicks::Now() + + base::TimeDelta::FromSeconds(5)); + AnimateOnChildWindowVisibilityChanged(window.get(), false); + animating_layer->GetAnimator()->StopAnimating(); +} + } // namespace wm |