• skyostil's avatar
    Implement a runtime headless mode for Linux · eb0f3b02
    skyostil authored
    This patch implements a runtime headless mode (i.e., a
    --headless command line switch) that makes it possible to
    use a regular Chrome binary as a headless. When the binary
    is launched with this switch, the main entrypoint calls
    into the Headless Shell entrypoint, effectively starting
    that shell instead of Chrome.
    
    To make this possible we must remove the dependency from
    Headless to Ozone, because Ozone is a build-time feature
    which is generally not enabled for regular Chrome builds.
    In practice this means implementing a new headless-specific
    WindowTreeHost and modifying various graphics and input
    entrypoints to do something appropriate in headless mode.
    
    Since many of the modifications are in platform-specific
    code, this initial patch only adds headless support in Linux.
    Other platforms will be added later.
    
    Design doc: https://docs.google.com/document/d/1aIJUzQr3eougZQp90bp4mqGr5gY6hdUice8UPa-Ys90/edit#
    
    BUG=612904
    CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
    
    Review-Url: https://codereview.chromium.org/1991953002
    Cr-Commit-Position: refs/heads/master@{#438152}
    eb0f3b02
DEPS 366 Bytes