• James Cook's avatar
    chromeos: Update browser window placement for out-of-process ash · 40f7d75b
    James Cook authored
    WindowSizerAsh needs synchronous access to the target display for each
    new browser window.
    
    * Create ash::ShellState and move root_window_for_new_windows_ there
    * Introduce mojom::ShellState interface in ash
    * Create a ShellStateClient in chrome to cache the target display id
      for new windows
    
    The interface is not implemented by ash::Shell because ash::Shell
    is already massive (1500 lines). Also, shell.h is included in 900
    places in the code base and I don't want to add mojo generated headers
    to shell.h.
    
    Windows still don't appear on the secondary display with
    --enable-features=Mash, but chrome is getting the correct display
    id and setting the window bounds properly. I think ash needs to be
    fixed to support top-level bounds on the secondary display, but that
    will need to be a follow-up CL.
    
    Bug: 764009, 768908
    Test: ash_unittests, unit_tests for WindowSizer
    Change-Id: Ib77834f8ed5dc4e65f02ff83ab81acbf3331db61
    Reviewed-on: https://chromium-review.googlesource.com/1067591Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
    Reviewed-by: default avatarScott Violet <sky@chromium.org>
    Reviewed-by: default avatarEvan Stade <estade@chromium.org>
    Commit-Queue: James Cook <jamescook@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#561950}
    40f7d75b
shell_state_client.h 1.63 KB