DescriptionRemove aura::RootWindow instance from LayerAnimator::observers_ and LayerAnimationSequence::observers_ when the window is deleted.
This would prevent Chrome from crashing (see the example stack trace below) when someone (e.g. ui/aura_shell/shell_accelerator_controller.cc) adds aura::RootWindow as an observer of a LayerAnimationSequence object, and the window is deleted before the animation finishes.
pure virtual method called
terminate called without an active exception
[24029:24029:1206/172212:111412790729:ERROR:process_util_posix.cc(139)] Received signal 6
base::debug::StackTrace::StackTrace() [0x809fbf4]
base::(anonymous namespace)::StackDumpSignalHandler() [0x830b615]
...
ui::LayerAnimationSequence::NotifyAborted() [0x826fcce]
ui::LayerAnimationSequence::Abort() [0x826f95b]
ui::LayerAnimator::ClearAnimations() [0x8274f84]
ui::LayerAnimator::~LayerAnimator() [0x8273a74]
scoped_ptr<>::~scoped_ptr() [0x826c7e3]
ui::Layer::~Layer() [0x8269873]
scoped_ptr<>::~scoped_ptr() [0x81b7891]
aura::Window::~Window() [0x81b4745]
aura::RootWindow::~RootWindow() [0x81ae824]
aura::RootWindow::DeleteInstance() [0x81ace70]
With the aura::RootWindow fix, we can reenable one test in shell_accelerator_controller_unittests.cc which checks the Control+Home accelerator.
BUG=None
TEST=ran aura_shell_unittests
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=113762
Patch Set 1 : wip #Patch Set 2 : review #Patch Set 3 : rebase #
Total comments: 2
Patch Set 4 : review fix #
Messages
Total messages: 7 (0 generated)
|