• Christopher Cameron's avatar
    Migrate macOS AppShim from IPC to mojo · d1a98d01
    Christopher Cameron authored
    Change IPC messages in app_shim_messages to a mojo interface.
    - Remove the AppShimMsg_RequestUserAttention method
    - Remove the warning that the interface needs versioning
    
    Update how the connection between shim and browser is initialized
    - The connection process is initiated in the shim process in the
      AppShimController::CreateChannelAndSendLaunchApp function
    - Make the socket created be an AppShimHost interface (the interface
      used to send from the shim to the browser)
    - Immediately enqueue a LaunchApp message to the browser process, and
      add an AppShim interface to the LaunchApp method, to allow the
      browser to call back to the shim process
    - Update AppShimHost::ServeChannel to bind itself as a AppShimHost
      to the created socket
    - Update AppShimHost::LaunchApp to initialize its AppShim pointer.
      Intentionally do not update this method to have a reply, to minimize
      functional changes. Rather, send the reply via the passed AppShim.
    
    Update how channel errors are handled by adding an error callback
    to the mojo bindings created in AppShimHost::LaunchApp and
    AppShimController::CreateChannelAndSendLaunchApp.
    
    Update unit tests to use the mojo interfaces. Change AppShimHostTest
    to use a weak pointer to the AppShimHost, because, when its message
    loop is allowed to run, AppShimHost will delete itself on Close.
    
    Remove the comments about requiring that the interface between the
    shim and the browser versioned.
    
    Bug: 821651
    Change-Id: Ibad84de4ec25d1121e4ef4d8075a20bb3abd8642
    Reviewed-on: https://chromium-review.googlesource.com/1103844Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
    Reviewed-by: default avatarKen Rockot <rockot@chromium.org>
    Reviewed-by: default avatarTrent Apted <tapted@chromium.org>
    Commit-Queue: ccameron <ccameron@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#568286}
    d1a98d01
chrome_main_app_mode_mac.mm 24.1 KB