| Index: ui/gfx/x/x11_types.h
 | 
| diff --git a/ui/gfx/x/x11_types.h b/ui/gfx/x/x11_types.h
 | 
| index 945776d3bfa7ce6359d1c94f8ab572a3ebac6bf9..82ce8389bd99bde7c97c22a0a85be33d26c5b9b3 100644
 | 
| --- a/ui/gfx/x/x11_types.h
 | 
| +++ b/ui/gfx/x/x11_types.h
 | 
| @@ -6,6 +6,7 @@
 | 
|  #define UI_GFX_X_X11_UTIL_H_
 | 
|  
 | 
|  #include "base/basictypes.h"
 | 
| +#include "base/memory/scoped_ptr.h"
 | 
|  #include "ui/gfx/gfx_export.h"
 | 
|  
 | 
|  typedef unsigned long XAtom;
 | 
| @@ -14,8 +15,20 @@ typedef struct _XImage XImage;
 | 
|  typedef struct _XGC *GC;
 | 
|  typedef struct _XDisplay XDisplay;
 | 
|  
 | 
| +extern "C" {
 | 
| +int XFree(void*);
 | 
| +}
 | 
| +
 | 
|  namespace gfx {
 | 
|  
 | 
| +template <class T, class R, R (*F)(T*)>
 | 
| +struct XObjectDeleter {
 | 
| +  inline void operator()(void* ptr) const { F(static_cast<T*>(ptr)); }
 | 
| +};
 | 
| +
 | 
| +template <class T, class D = XObjectDeleter<void, int, XFree>>
 | 
| +using XScopedPtr = scoped_ptr<T, D>;
 | 
| +
 | 
|  // TODO(oshima|evan): This assume there is one display and doesn't work
 | 
|  // undef multiple displays/monitor environment. Remove this and change the
 | 
|  // chrome codebase to get the display from window.
 | 
| 
 |