• Scott Violet's avatar
    chromeos: further MultiUserWindowManager refactoring · c0d91cfe
    Scott Violet authored
    This moves the majority of the MultiUserWindowManagerDelegate functions
    into the mojom. For classic mode, a mojo::Binding is created so that notification
    happens async (just as it will in multi-process mdoe).
    
    MultiUserWindowManagerWindowDelegate has been removed.
    
    MultiUserWindowManagerDelegate has been removed.
    
    Adds MultiUserWindowManagerDelegateClassic. Here's the comment for it:
    // Delegate used in classic and single-process mash mode. This delegate is
    // notified when the state of a window changes. In classic mode, this delegate
    // is called for all windows, in single-process mash mode, this delegate is
    // called for Windows created in ash's window hierarchy (more specifically,
    // Windows whose aura::Env has a mode of aura::Mode::LOCAL). For example, Arc
    // creates Windows that are parented directly to Ash's window hierarchy, changes
    // to such windows are called through this delegate.
    
    Ideally MultiUserWindowManagerDelegateClassic wouldn't be necessary, but that
    would require assigning unique ids for local windows, which would be rather
    error prone.
    
    The biggest change here is that MultiUserWindowManagerChromeOS is now notified
    async of the functions that were in MultiUserWindowManagerDelegate, even in
    classic.
    
    
    BUG=875111
    TEST=covered by tests
    
    Change-Id: I51e8a89ae3c4e6096d0cf04dc91133781b8cb4cf
    Reviewed-on: https://chromium-review.googlesource.com/c/1354558
    Commit-Queue: Scott Violet <sky@chromium.org>
    Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
    Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#612428}
    c0d91cfe
multi_user_window_manager.h 11.6 KB