diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 06:03:01 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-27 06:03:01 +0000 |
commit | 2eee373807c35c426d8243c650d87355de8365b2 (patch) | |
tree | 5046d09b9b4c75d1fe02e14cf4826a74323f9221 /ash | |
parent | da8c0aeab6d1117912fe7f4e4140e5ea1849a8ed (diff) | |
download | chromium_src-2eee373807c35c426d8243c650d87355de8365b2.zip chromium_src-2eee373807c35c426d8243c650d87355de8365b2.tar.gz chromium_src-2eee373807c35c426d8243c650d87355de8365b2.tar.bz2 |
aura: Fix app list crash on logout.
App list widget is in always-on-top container which is destructed after default
container. This causes crash when destructing a live app list widget during
Shell shutdown.
BUG=111523
TEST=Verify fix for issue 111523.
Review URL: http://codereview.chromium.org/9234071
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119376 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r-- | ash/app_list/app_list.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ash/app_list/app_list.cc b/ash/app_list/app_list.cc index ed593f7..0205afc 100644 --- a/ash/app_list/app_list.cc +++ b/ash/app_list/app_list.cc @@ -115,13 +115,18 @@ void AppList::ResetWidget() { } void AppList::ScheduleAnimation() { + aura::Window* default_container = Shell::GetInstance()->GetContainer( + internal::kShellWindowId_DefaultContainer); + // |default_container| could be NULL during Shell shutdown. + if (!default_container) + return; + ui::Layer* layer = GetLayer(widget_); ui::ScopedLayerAnimationSettings app_list_animation(layer->GetAnimator()); layer->SetBounds(GetPreferredBounds(is_visible_)); layer->SetOpacity(is_visible_ ? 1.0 : 0.0); - ui::Layer* default_container_layer = Shell::GetInstance()->GetContainer( - internal::kShellWindowId_DefaultContainer)->layer(); + ui::Layer* default_container_layer = default_container->layer(); ui::ScopedLayerAnimationSettings default_container_animation( default_container_layer->GetAnimator()); default_container_layer->SetOpacity(is_visible_ ? 0.0 : 1.0); |