| Index: chrome/common/x11_util.h
 | 
| diff --git a/chrome/common/x11_util.h b/chrome/common/x11_util.h
 | 
| index 4800a69d759408d8f04f1c9c188a6cd98b1a51ee..aef133fc893d51afab5fee0080124cbe69511c1c 100644
 | 
| --- a/chrome/common/x11_util.h
 | 
| +++ b/chrome/common/x11_util.h
 | 
| @@ -11,48 +11,75 @@
 | 
|  // we use a void* for Visual*). The Xlib headers are highly polluting so we try
 | 
|  // hard to limit their spread into the rest of the code.
 | 
|  
 | 
| +typedef struct _GdkDrawable GdkWindow;
 | 
|  typedef struct _GtkWidget GtkWidget;
 | 
|  typedef unsigned long XID;
 | 
|  typedef struct _XDisplay Display;
 | 
|  
 | 
| +namespace base {
 | 
| +class Thread;
 | 
| +}
 | 
| +
 | 
|  namespace gfx {
 | 
|  class Size;
 | 
|  }
 | 
|  
 | 
|  namespace x11_util {
 | 
| -  // These functions cache their results and must be called from the UI thread.
 | 
| -  // Currently they don't support multiple screens/displays.
 | 
| -
 | 
| -  // Return an X11 connection for the current, primary display.
 | 
| -  Display* GetXDisplay();
 | 
| -  // Return true iff the connection supports X shared memory
 | 
| -  bool QuerySharedMemorySupport(Display* dpy);
 | 
| -  // Return true iff the display supports Xrender
 | 
| -  bool QueryRenderSupport(Display* dpy);
 | 
| -
 | 
| -  // These functions do not cache their results
 | 
| -
 | 
| -  // Get the X window id for the default root window
 | 
| -  XID GetX11RootWindow();
 | 
| -  // Get the X window id for the given GTK widget.
 | 
| -  XID GetX11WindowFromGtkWidget(GtkWidget*);
 | 
| -  // Get a Visual from the given widget. Since we don't include the Xlib
 | 
| -  // headers, this is returned as a void*.
 | 
| -  void* GetVisualFromGtkWidget(GtkWidget*);
 | 
| -  // Return the number of bits-per-pixel for a pixmap of the given depth
 | 
| -  int BitsPerPixelForPixmapDepth(Display*, int depth);
 | 
| -
 | 
| -  // Return a handle to a server side pixmap. |shared_memory_key| is a SysV
 | 
| -  // IPC key. The shared memory region must contain 32-bit pixels.
 | 
| -  XID AttachSharedMemory(Display* display, int shared_memory_support);
 | 
| -  void DetachSharedMemory(Display* display, XID shmseg);
 | 
| -
 | 
| -  // Return a handle to an XRender picture where |pixmap| is a handle to a
 | 
| -  // pixmap containing Skia ARGB data.
 | 
| -  XID CreatePictureFromSkiaPixmap(Display* display, XID pixmap);
 | 
| -
 | 
| -  void FreePicture(Display* display, XID picture);
 | 
| -  void FreePixmap(Display* display, XID pixmap);
 | 
| -};
 | 
| +
 | 
| +// These functions use the GDK default display and this /must/ be called from
 | 
| +// the UI thread. Thus, they don't support multiple displays.
 | 
| +
 | 
| +// These functions cache their results.
 | 
| +
 | 
| +// Return an X11 connection for the current, primary display.
 | 
| +Display* GetXDisplay();
 | 
| +// Return true iff the connection supports X shared memory
 | 
| +bool QuerySharedMemorySupport(Display* dpy);
 | 
| +// Return true iff the display supports Xrender
 | 
| +bool QueryRenderSupport(Display* dpy);
 | 
| +// Return the default screen number for the display
 | 
| +int GetDefaultScreen(Display* display);
 | 
| +
 | 
| +// These functions do not cache their results
 | 
| +
 | 
| +// Get the X window id for the default root window
 | 
| +XID GetX11RootWindow();
 | 
| +// Get the X window id for the given GTK widget.
 | 
| +XID GetX11WindowFromGtkWidget(GtkWidget*);
 | 
| +XID GetX11WindowFromGdkWindow(GdkWindow*);
 | 
| +// Get a Visual from the given widget. Since we don't include the Xlib
 | 
| +// headers, this is returned as a void*.
 | 
| +void* GetVisualFromGtkWidget(GtkWidget*);
 | 
| +// Return the number of bits-per-pixel for a pixmap of the given depth
 | 
| +int BitsPerPixelForPixmapDepth(Display*, int depth);
 | 
| +
 | 
| +// Return a handle to a server side pixmap. |shared_memory_key| is a SysV
 | 
| +// IPC key. The shared memory region must contain 32-bit pixels.
 | 
| +XID AttachSharedMemory(Display* display, int shared_memory_support);
 | 
| +void DetachSharedMemory(Display* display, XID shmseg);
 | 
| +
 | 
| +// Return a handle to an XRender picture where |pixmap| is a handle to a
 | 
| +// pixmap containing Skia ARGB data.
 | 
| +XID CreatePictureFromSkiaPixmap(Display* display, XID pixmap);
 | 
| +
 | 
| +void FreePicture(Display* display, XID picture);
 | 
| +void FreePixmap(Display* display, XID pixmap);
 | 
| +
 | 
| +// These functions are for performing X opertions outside of the UI thread.
 | 
| +
 | 
| +// Return the Display for the secondary X connection. We keep a second
 | 
| +// connection around for making X requests outside of the UI thread.
 | 
| +// This function may only be called from the BACKGROUND_X11 thread.
 | 
| +Display* GetSecondaryDisplay();
 | 
| +
 | 
| +// Since one cannot include both WebKit header and Xlib headers in the same
 | 
| +// file (due to collisions), we wrap all the Xlib functions that we need here.
 | 
| +// These functions must be called on the BACKGROUND_X11 thread since they
 | 
| +// reference GetSecondaryDisplay().
 | 
| +
 | 
| +void GetWindowGeometry(int* x, int* y, unsigned* width, unsigned* height,
 | 
| +                       XID window);
 | 
| +
 | 
| +}  // namespace x11_util
 | 
|  
 | 
|  #endif  // CHROME_COMMON_X11_UTIL_H_
 | 
| 
 |