Skip to content
  • Antonio Gomes's avatar
    Allow ws to pass display::Display data to Aura/client · 015f3ed1
    Antonio Gomes authored and Santosh Mahto's avatar Santosh Mahto committed
    Change ScreenManagerOzoneExternal to be able to send out display::Display
    updates via ws::UserDisplayManager (which will send the display::Display
    to the client).
    
    For this, patch extends OzonePlatform with a method that allows
    its instances (X11, Wayland, etc) to query the host system its displays
    data (resolution only for now).
    ScreenManagerOzoneExternal then calls to ws::DisplayManager, which calls to
    ws::UserDisplayManager.
    
    In order to allow ws::DisplayManager to get display::Display and not change
    ws::Display in external mode, a new hook was added: ::OnHostDisplaysReady.
    
    Wayland support will come in a fixup.
    
    Issue #43
    
      Contains fixup in ozone_platform_headless for fixing
      https://build-chromium.igalia.com/#builders/1/builds/149
    
    (TEMP) fixup! Allow ws to pass display::Display data to Aura/client
    
      Fix creating ui::Display after https://codereview.chromium.org/2829733002/
      is upstreamed
    
    fixup! Allow ws to pass display::Display data to Aura/client
    
    Use a non-zero value for FrameDecorationValues::normal_client_area_insets,
    so that the tabstrip has room to get drawn.
    
    The value '33' was picked up by mimic'ing ChromeOS's Chrome/Mash.
    
    Issue #56
    Issue #43
    
    fixup! Allow ws to pass display::Display data to Aura/client
    
    PR #50, reverted an initial hack added as part of the commit
    "Allow chrome launch with --mus parameter", but it left over one
    bit.
    
    This commits removes the left over bit, but in the next rebase
    this should be squashed against "Allow chrome launch with --mus parameter"
    commit, not "Allow ws to pass display::Display data to Aura/client".
    
    fixup! Allow ws to pass display::Display data to Aura/client
    
    null-check the pointer before dereferencing it. nullptr is
    deliberately pass in sometimes.
    
    Issue #43
    
    fixup! fixup! Allow ws to pass display::Display data to Aura/client
    
    During the April/24 rebase, msisov@ hardcoded the ScreenManager creating
    in ws::service. This method adds a call to ws::Service::OnWillCreateTreeForWindowManager,
    similarly to how internal window mode does.
    
    fixup! Allow ws to pass display::Display data to Aura/client
    
    Implement OzonePlatformWayland::QueryHostDisplaysData. Note
    that by the time WaylandOutput is instantiated, the associated
    WaylandConnection object needs to be able to receive and process
    events, so that it can handle wl_output_listener hooks.
    
    Issue #43
    
    fixup! Allow ws to pass display::Display data to Aura/client
    
    Now that Mus runs as a thread within the Browser process, we can not
    install ScreenManagerOzoneExternal's Screen instance. Instead, it is
    only used internally to track displays (add, remove, modify).
    
    This fixes a crash at shutdown.
    
    PR #250
    
    fixup! Allow ws to pass display::Display data to Aura/client
    
    Stop early listen to events, when wl_output is installed.
    This call was causing us to enter the event loop earlier than we should,
    and occasional hangs at start up.
    
    Instead, when display/screen data is queried, we "ask" the server
    to close all pending requests associated with a given wl_display.
    Screen dimensions then can be queried.
    
    Issue #212
    
    fixup! Allow ws to pass display::Display data to Aura/client
    
    Fix unittests: after the change to WaylandConnection::Initialize, the
    unittests started to hang on startup, because the WaylandOutput::Geometry
    had always been empty.
    
    The fix is to create a MockOutput, which is a global wl object on the
    server side, with non-empty geometry, which will be set during initializtion
    step.
    
    The second fix is to modify WaylandConnectionTest::Output in such a way that
    it would not wait in a blocking run loop. At the moment, we have
    a wl_display_roundtrip run until WaylandOutput::Geometry is set instead.
    015f3ed1