summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-27 06:03:01 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-27 06:03:01 +0000
commit2eee373807c35c426d8243c650d87355de8365b2 (patch)
tree5046d09b9b4c75d1fe02e14cf4826a74323f9221 /ash
parentda8c0aeab6d1117912fe7f4e4140e5ea1849a8ed (diff)
downloadchromium_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.cc9
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);