| Index: chrome/common/x11_util.cc
 | 
| diff --git a/chrome/common/x11_util.cc b/chrome/common/x11_util.cc
 | 
| index d10c32079c766d10f16c2f12b5dcb47b7ce706fc..83fc02a8e4ee3a5e243ce517e490f98a3e3953b3 100644
 | 
| --- a/chrome/common/x11_util.cc
 | 
| +++ b/chrome/common/x11_util.cc
 | 
| @@ -6,6 +6,7 @@
 | 
|  // ported from XCB since we can't use XCB on Ubuntu while its 32-bit support
 | 
|  // remains woefully incomplete.
 | 
|  
 | 
| +#include "base/thread.h"
 | 
|  #include "chrome/common/x11_util.h"
 | 
|  #include "chrome/common/x11_util_internal.h"
 | 
|  
 | 
| @@ -98,6 +99,10 @@ bool QueryRenderSupport(Display* dpy) {
 | 
|    return render_supported;
 | 
|  }
 | 
|  
 | 
| +int GetDefaultScreen(Display* display) {
 | 
| +  return XDefaultScreen(display);
 | 
| +}
 | 
| +
 | 
|  XID GetX11RootWindow() {
 | 
|    return GDK_WINDOW_XID(gdk_get_default_root_window());
 | 
|  }
 | 
| @@ -106,6 +111,10 @@ XID GetX11WindowFromGtkWidget(GtkWidget* widget) {
 | 
|    return GDK_WINDOW_XID(widget->window);
 | 
|  }
 | 
|  
 | 
| +XID GetX11WindowFromGdkWindow(GdkWindow* window) {
 | 
| +  return GDK_WINDOW_XID(window);
 | 
| +}
 | 
| +
 | 
|  void* GetVisualFromGtkWidget(GtkWidget* widget) {
 | 
|    return GDK_VISUAL_XVISUAL(gtk_widget_get_visual(widget));
 | 
|  }
 | 
| @@ -219,4 +228,25 @@ void FreePixmap(Display* display, XID pixmap) {
 | 
|    XFreePixmap(display, pixmap);
 | 
|  }
 | 
|  
 | 
| +// Called on BACKGROUND_X11 thread.
 | 
| +Display* GetSecondaryDisplay() {
 | 
| +  static Display* display = NULL;
 | 
| +  if (!display) {
 | 
| +    display = XOpenDisplay(NULL);
 | 
| +    CHECK(display);
 | 
| +  }
 | 
| +
 | 
| +  return display;
 | 
| +}
 | 
| +
 | 
| +// Called on BACKGROUND_X11 thread.
 | 
| +void GetWindowGeometry(int* x, int* y, unsigned* width, unsigned* height,
 | 
| +                       XID window) {
 | 
| +  Window root_window;
 | 
| +  unsigned border_width, depth;
 | 
| +
 | 
| +  CHECK(XGetGeometry(GetSecondaryDisplay(), window,
 | 
| +                     &root_window, x, y, width, height, &border_width, &depth));
 | 
| +}
 | 
| +
 | 
|  }  // namespace x11_util
 | 
| 
 |