From c8ef1d0bc63aa014ba0fb94049671b371c0d5d18 Mon Sep 17 00:00:00 2001 From: "sadrul@chromium.org" Date: Mon, 14 Apr 2014 21:13:20 +0000 Subject: x11: Remove X11 message-pump. The remaining use of the X11 mesage-pump was opening the connection to the X11 server. This patch moves that out of the message-pump, into gfx. This allows us to remove the X11 message-pump, and just use the base Glib-based message-pump on Linux and ChromeOS. BUG=354062 R=darin@chromium.org, sky@chromium.org Review URL: https://codereview.chromium.org/235043005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@263726 0039d316-1c4b-4281-b951-d872f2087c98 --- base/message_loop/message_loop.h | 23 ++----------- base/message_loop/message_pump_glib.h | 2 ++ base/message_loop/message_pump_x11.cc | 63 ----------------------------------- base/message_loop/message_pump_x11.h | 42 ----------------------- 4 files changed, 5 insertions(+), 125 deletions(-) delete mode 100644 base/message_loop/message_pump_x11.cc delete mode 100644 base/message_loop/message_pump_x11.h (limited to 'base/message_loop') diff --git a/base/message_loop/message_loop.h b/base/message_loop/message_loop.h index 6539c65..07f9105 100644 --- a/base/message_loop/message_loop.h +++ b/base/message_loop/message_loop.h @@ -34,14 +34,10 @@ #include "base/message_loop/message_pump_libevent.h" #if !defined(OS_MACOSX) && !defined(OS_ANDROID) -#if defined(USE_AURA) && defined(USE_X11) && !defined(OS_NACL) -#include "base/message_loop/message_pump_x11.h" +#if defined(USE_GLIB) && !defined(OS_NACL) +#include "base/message_loop/message_pump_glib.h" #elif !defined(OS_ANDROID_HOST) -#define USE_GTK_MESSAGE_PUMP -#include "base/message_loop/message_pump_gtk.h" -#if defined(TOOLKIT_GTK) -#include "base/message_loop/message_pump_x11.h" -#endif +#include "base/message_loop/message_pump_glib.h" #endif #endif @@ -95,8 +91,6 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate { public: #if defined(OS_WIN) typedef MessagePumpObserver Observer; -#elif defined(USE_GTK_MESSAGE_PUMP) - typedef MessagePumpGdkObserver Observer; #endif // A MessageLoop has a particular type, which indicates the set of @@ -413,13 +407,6 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate { MessagePumpLibevent* pump_libevent() { return static_cast(pump_.get()); } -#if defined(TOOLKIT_GTK) - friend class MessagePumpX11; - MessagePumpX11* pump_gpu() { - DCHECK_EQ(TYPE_GPU, type()); - return static_cast(pump_.get()); - } -#endif #endif scoped_ptr pump_; @@ -593,10 +580,6 @@ class BASE_EXPORT MessageLoopForUI : public MessageLoop { #endif protected: -#if defined(USE_X11) - friend class MessagePumpX11; -#endif - #if !defined(OS_MACOSX) && !defined(OS_ANDROID) // TODO(rvargas): Make this platform independent. MessagePumpForUI* pump_ui() { diff --git a/base/message_loop/message_pump_glib.h b/base/message_loop/message_pump_glib.h index 0211b0f..9acc472 100644 --- a/base/message_loop/message_pump_glib.h +++ b/base/message_loop/message_pump_glib.h @@ -94,6 +94,8 @@ class BASE_EXPORT MessagePumpGlib : public MessagePump { DISALLOW_COPY_AND_ASSIGN(MessagePumpGlib); }; +typedef MessagePumpGlib MessagePumpForUI; + } // namespace base #endif // BASE_MESSAGE_LOOP_MESSAGE_PUMP_GLIB_H_ diff --git a/base/message_loop/message_pump_x11.cc b/base/message_loop/message_pump_x11.cc deleted file mode 100644 index fb40b1d..0000000 --- a/base/message_loop/message_pump_x11.cc +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/message_loop/message_pump_x11.h" - -#include -#include -#include -#include - -#include "base/basictypes.h" -#include "base/message_loop/message_loop.h" - -namespace base { - -namespace { - -// The connection is essentially a global that's accessed through a static -// method and destroyed whenever ~MessagePumpX11() is called. We do this -// for historical reasons so user code can call -// MessagePumpForUI::GetDefaultXDisplay() where MessagePumpForUI is a typedef -// to whatever type in the current build. -// -// TODO(erg): This can be changed to something more sane like -// MessagePumpX11::Current()->display() once MessagePumpGtk goes away. -Display* g_xdisplay = NULL; - -} // namespace - -MessagePumpX11::MessagePumpX11() : MessagePumpGlib() { - GetDefaultXDisplay(); -} - -MessagePumpX11::~MessagePumpX11() { - if (g_xdisplay) { - XCloseDisplay(g_xdisplay); - g_xdisplay = NULL; - } -} - -// static -Display* MessagePumpX11::GetDefaultXDisplay() { - if (!g_xdisplay) - g_xdisplay = XOpenDisplay(NULL); - return g_xdisplay; -} - -#if defined(TOOLKIT_GTK) -// static -MessagePumpX11* MessagePumpX11::Current() { - MessageLoop* loop = MessageLoop::current(); - return static_cast(loop->pump_gpu()); -} -#else -// static -MessagePumpX11* MessagePumpX11::Current() { - MessageLoopForUI* loop = MessageLoopForUI::current(); - return static_cast(loop->pump_ui()); -} -#endif - -} // namespace base diff --git a/base/message_loop/message_pump_x11.h b/base/message_loop/message_pump_x11.h deleted file mode 100644 index 5fdfeea..0000000 --- a/base/message_loop/message_pump_x11.h +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_MESSAGE_LOOP_MESSAGE_PUMP_X11_H -#define BASE_MESSAGE_LOOP_MESSAGE_PUMP_X11_H - -#include -#include - -#include "base/memory/scoped_ptr.h" -#include "base/message_loop/message_pump.h" -#include "base/message_loop/message_pump_glib.h" -#include "base/observer_list.h" - -typedef struct _XDisplay Display; - -namespace base { - -// This class implements a message-pump for dispatching X events. -class BASE_EXPORT MessagePumpX11 : public MessagePumpGlib { - public: - MessagePumpX11(); - virtual ~MessagePumpX11(); - - // Returns default X Display. - static Display* GetDefaultXDisplay(); - - // Returns the UI or GPU message pump. - static MessagePumpX11* Current(); - - private: - DISALLOW_COPY_AND_ASSIGN(MessagePumpX11); -}; - -#if !defined(TOOLKIT_GTK) -typedef MessagePumpX11 MessagePumpForUI; -#endif - -} // namespace base - -#endif // BASE_MESSAGE_LOOP_MESSAGE_PUMP_X11_H -- cgit v1.1