| Index: testing/xvfb.py
 | 
| diff --git a/testing/xvfb.py b/testing/xvfb.py
 | 
| index 2b17d965d32ba5a106c7fcdb537742c64534e9dd..dd31c9c059d278d6951979e0329cc57b52a13d58 100755
 | 
| --- a/testing/xvfb.py
 | 
| +++ b/testing/xvfb.py
 | 
| @@ -81,6 +81,7 @@ def start_xvfb(env, build_dir, xvfb_path='Xvfb', display=':9'):
 | 
|    env['DISPLAY'] = display
 | 
|    xvfb_proc = None
 | 
|    openbox_proc = None
 | 
| +  xcompmgr_proc = None
 | 
|  
 | 
|    try:
 | 
|      xvfb_cmd = [xvfb_path, display, '-screen', '0', '1280x800x24', '-ac',
 | 
| @@ -98,18 +99,24 @@ def start_xvfb(env, build_dir, xvfb_path='Xvfb', display=':9'):
 | 
|        print 'Xvfb output:'
 | 
|        for l in xvfb_proc.communicate()[0].splitlines():
 | 
|          print '> %s' % l
 | 
| -      return (None, None)
 | 
| +      return (None, None, None)
 | 
|  
 | 
|      # Some ChromeOS tests need a window manager.
 | 
|      openbox_proc = subprocess.Popen('openbox', stdout=subprocess.PIPE,
 | 
|                                      stderr=subprocess.STDOUT, env=env)
 | 
| +
 | 
| +    # Some tests need a compositing manager to make use of transparent visuals.
 | 
| +    xcompmgr_proc = subprocess.Popen('xcompmgr', stdout=subprocess.PIPE,
 | 
| +                                     stderr=subprocess.STDOUT, env=env)
 | 
|    except OSError as e:
 | 
| -    print >> sys.stderr, 'Failed to start Xvfb or Openbox: %s' % str(e)
 | 
| +    print >> sys.stderr, 'Failed to start Xvfb or Openbox or xcompmgr: %s' % \
 | 
| +      str(e)
 | 
|      kill(xvfb_proc)
 | 
|      kill(openbox_proc)
 | 
| -    return (None, None)
 | 
| +    kill(xcompmgr_proc)
 | 
| +    return (None, None, None)
 | 
|  
 | 
| -  return (xvfb_proc, openbox_proc)
 | 
| +  return (xvfb_proc, openbox_proc, xcompmgr_proc)
 | 
|  
 | 
|  
 | 
|  def run_executable(cmd, build_dir, env):
 | 
| @@ -119,15 +126,18 @@ def run_executable(cmd, build_dir, env):
 | 
|    """
 | 
|    xvfb = None
 | 
|    openbox = None
 | 
| +  xcompmgr = None
 | 
|    if should_start_xvfb(env):
 | 
| -    (xvfb, openbox) = start_xvfb(env, build_dir)
 | 
| -    if not xvfb or not xvfb.pid or not openbox or not openbox.pid:
 | 
| +    (xvfb, openbox, xcompmgr) = start_xvfb(env, build_dir)
 | 
| +    if not xvfb or not xvfb.pid or not openbox or not openbox.pid or \
 | 
| +       not xcompmgr or not xcompmgr.pid:
 | 
|        return 1
 | 
|    try:
 | 
|      return test_env.run_executable(cmd, env)
 | 
|    finally:
 | 
|      kill(xvfb)
 | 
|      kill(openbox)
 | 
| +    kill(xcompmgr)
 | 
|  
 | 
|  
 | 
|  def main():
 | 
| 
 |