• Maksim Sisov's avatar
    [ozone/wayland] Manually handle fullscreen states. · 8f2591ae
    Maksim Sisov authored
    In order to ensure media files can enter fullscreen mode, manually
    handle fullscreen states. Basically, a compositor sends configuration
    events on each request for state changes from clients asynchronously,
    which is unefficient for media files when they enter a fullscreen mode.
    
    For example, when a youtube video file is being set to fullscreen, a
    WaylandWindow is also set to a fullscreen mode, but the return value from
    the WaylandWindow::GetPlatformWindowState still contains an old value until
    the compositor calls with a configuration event. This short race is
    enough for a media content to be placed in a forever "entering fullscreen"
    state, which never results in a fullscreen state for media files.
    
    Bug: 843018
    TEST: XdgVersionV5Test/WaylandWindowTest.SetFullscreenAndRestore/0
    XdgVersionV6Test/WaylandWindowTest.SetFullscreenAndRestore/0
    
    Change-Id: Ib9bc8c0ce09412c36437d165efc6a0cad60c4d17
    Reviewed-on: https://chromium-review.googlesource.com/1107636Reviewed-by: default avatarRobert Kroeger <rjkroege@chromium.org>
    Commit-Queue: Maksim Sisov <msisov@igalia.com>
    Cr-Commit-Position: refs/heads/master@{#569172}
    8f2591ae
wayland_window.cc 17.1 KB