summaryrefslogtreecommitdiffstats
path: root/ui/wm
diff options
context:
space:
mode:
authorljagielski <ljagielski@opera.com>2015-01-07 12:32:55 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-07 20:34:29 +0000
commit205709806da5c07eb640fe256d473f1a64f56e44 (patch)
tree25650476f06b480ca1be13cd97223007905dff5e /ui/wm
parentb639aca53effcba6978bd37c829745b6a84699cf (diff)
downloadchromium_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.cc17
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