summaryrefslogtreecommitdiffstats
path: root/athena/screen
diff options
context:
space:
mode:
authoroshima <oshima@chromium.org>2014-09-09 19:44:32 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-10 02:51:16 +0000
commit13ba9b2b46c0977d30fad57d96da1772c0cf67f1 (patch)
tree96340ffeaa8171ec1fab918a6df19f30e2c4bf59 /athena/screen
parent6a4d1490ab6b5146a3dedd469d49a52045ce9194 (diff)
downloadchromium_src-13ba9b2b46c0977d30fad57d96da1772c0cf67f1.zip
chromium_src-13ba9b2b46c0977d30fad57d96da1772c0cf67f1.tar.gz
chromium_src-13ba9b2b46c0977d30fad57d96da1772c0cf67f1.tar.bz2
Fix crash during shutdown
* keep alive has to be incremented at startup. * exclude more code that depends on ash. * create a screen for shutdown Minor cleanup * remove all containers when ScreenManager is deleted. BUG=397167, 401044 TEST=AthenaShutdownTest.Shutdown Review URL: https://codereview.chromium.org/558823002 Cr-Commit-Position: refs/heads/master@{#294083}
Diffstat (limited to 'athena/screen')
-rw-r--r--athena/screen/screen_manager_impl.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/athena/screen/screen_manager_impl.cc b/athena/screen/screen_manager_impl.cc
index c8395a7..0b9f67e 100644
--- a/athena/screen/screen_manager_impl.cc
+++ b/athena/screen/screen_manager_impl.cc
@@ -240,6 +240,13 @@ ScreenManagerImpl::~ScreenManagerImpl() {
root_window_->RemovePreTargetHandler(focus_controller);
aura::client::SetActivationClient(root_window_, NULL);
aura::client::SetFocusClient(root_window_, NULL);
+ aura::Window::Windows children = root_window_->children();
+ // Close All children:
+ for (aura::Window::Windows::iterator iter = children.begin();
+ iter != children.end();
+ ++iter) {
+ delete *iter;
+ }
instance = NULL;
}