summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-24 06:56:29 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-24 06:56:29 +0000
commit69fbed1756fd299dcf23f72be39d6de4424a3268 (patch)
tree46ba144e84a8a1ee23820e9edc46f708b16d069f
parent632f7994a9ea18b3a5bf45ae78cd3d65677afd19 (diff)
downloadchromium_src-69fbed1756fd299dcf23f72be39d6de4424a3268.zip
chromium_src-69fbed1756fd299dcf23f72be39d6de4424a3268.tar.gz
chromium_src-69fbed1756fd299dcf23f72be39d6de4424a3268.tar.bz2
linux_aura: Release X11 resources when the MessagePumpAuraX11 goes away.
On developer's Precise machines (but not the bots!), views_unittests stopped working abruptly. This is a case where I'm not sure how the code ever worked. This makes various shutdown code work. BUG=none Review URL: https://chromiumcodereview.appspot.com/12897005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190223 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ui/aura/env.cc2
-rw-r--r--ui/aura/test/aura_test_base.cc8
-rw-r--r--ui/aura/test/aura_test_helper.cc9
-rw-r--r--ui/views/widget/desktop_aura/x11_desktop_handler.cc2
4 files changed, 13 insertions, 8 deletions
diff --git a/ui/aura/env.cc b/ui/aura/env.cc
index 2a03b2a..9f36f49 100644
--- a/ui/aura/env.cc
+++ b/ui/aura/env.cc
@@ -35,6 +35,8 @@ Env::~Env() {
&device_list_updater_aurax11_);
#endif
+ FOR_EACH_OBSERVER(EnvObserver, observers_, OnWillDestroyEnv());
+
ui::Compositor::Terminate();
}
diff --git a/ui/aura/test/aura_test_base.cc b/ui/aura/test/aura_test_base.cc
index f6ad08c..5bbef57 100644
--- a/ui/aura/test/aura_test_base.cc
+++ b/ui/aura/test/aura_test_base.cc
@@ -10,10 +10,6 @@
#include "ui/base/gestures/gesture_configuration.h"
#include "ui/base/ime/text_input_test_support.h"
-#if defined(USE_X11)
-#include "ui/base/x/x11_util.h"
-#endif
-
namespace aura {
namespace test {
@@ -73,10 +69,6 @@ void AuraTestBase::TearDown() {
helper_->TearDown();
ui::TextInputTestSupport::Shutdown();
testing::Test::TearDown();
-
-#if defined(USE_X11)
- ui::ResetXCursorCache();
-#endif
}
Window* AuraTestBase::CreateNormalWindow(int id, Window* parent,
diff --git a/ui/aura/test/aura_test_helper.cc b/ui/aura/test/aura_test_helper.cc
index 7d01d2d..cc7597c 100644
--- a/ui/aura/test/aura_test_helper.cc
+++ b/ui/aura/test/aura_test_helper.cc
@@ -20,6 +20,10 @@
#include "ui/compositor/scoped_animation_duration_scale_mode.h"
#include "ui/gfx/screen.h"
+#if defined(USE_X11)
+#include "ui/base/x/x11_util.h"
+#endif
+
namespace aura {
namespace test {
@@ -74,6 +78,11 @@ void AuraTestHelper::TearDown() {
root_window_.reset();
test_screen_.reset();
gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, NULL);
+
+#if defined(USE_X11)
+ ui::ResetXCursorCache();
+#endif
+
Env::DeleteInstance();
}
diff --git a/ui/views/widget/desktop_aura/x11_desktop_handler.cc b/ui/views/widget/desktop_aura/x11_desktop_handler.cc
index ef01301..ef0b633 100644
--- a/ui/views/widget/desktop_aura/x11_desktop_handler.cc
+++ b/ui/views/widget/desktop_aura/x11_desktop_handler.cc
@@ -59,6 +59,8 @@ X11DesktopHandler::~X11DesktopHandler() {
}
void X11DesktopHandler::ActivateWindow(::Window window) {
+ DCHECK_EQ(base::MessagePumpAuraX11::GetDefaultXDisplay(), xdisplay_);
+
XEvent xclient;
memset(&xclient, 0, sizeof(xclient));
xclient.type = ClientMessage;