diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-14 21:13:20 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-14 21:13:20 +0000 |
commit | c8ef1d0bc63aa014ba0fb94049671b371c0d5d18 (patch) | |
tree | f3f7a66331dde62271d9f9aeac0618cb9a07946b /base/message_loop | |
parent | 4b05a7bb244c80ffd75fd67cbb8d55f6735a5e04 (diff) | |
download | chromium_src-c8ef1d0bc63aa014ba0fb94049671b371c0d5d18.zip chromium_src-c8ef1d0bc63aa014ba0fb94049671b371c0d5d18.tar.gz chromium_src-c8ef1d0bc63aa014ba0fb94049671b371c0d5d18.tar.bz2 |
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
Diffstat (limited to 'base/message_loop')
-rw-r--r-- | base/message_loop/message_loop.h | 23 | ||||
-rw-r--r-- | base/message_loop/message_pump_glib.h | 2 | ||||
-rw-r--r-- | base/message_loop/message_pump_x11.cc | 63 | ||||
-rw-r--r-- | base/message_loop/message_pump_x11.h | 42 |
4 files changed, 5 insertions, 125 deletions
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<MessagePumpLibevent*>(pump_.get()); } -#if defined(TOOLKIT_GTK) - friend class MessagePumpX11; - MessagePumpX11* pump_gpu() { - DCHECK_EQ(TYPE_GPU, type()); - return static_cast<MessagePumpX11*>(pump_.get()); - } -#endif #endif scoped_ptr<MessagePump> 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 <glib.h> -#include <X11/X.h> -#include <X11/extensions/XInput2.h> -#include <X11/XKBlib.h> - -#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<MessagePumpX11*>(loop->pump_gpu()); -} -#else -// static -MessagePumpX11* MessagePumpX11::Current() { - MessageLoopForUI* loop = MessageLoopForUI::current(); - return static_cast<MessagePumpX11*>(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 <bitset> -#include <map> - -#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 |