• Erik Jensen's avatar
    remoting: Implement session chooser for Linux. · e084e7b0
    Erik Jensen authored
    Chrome Remote Desktop on Linux sets up a dedicated virtual X server
    which runs its own desktop environment separate from any that the user
    may be logged into locally. Previously, we would attempt to launch a
    default session on boot. This had a few issues:
    
      1. A full desktop environment would be running at all times, taking up
         resources even if the user only used CRD occasionally.
      2. There was no guarantee that session we launched was the session the
         user wanted in CRD, especially when the system's default session
         might using a resource-hungry desktop environment.
      3. Some desktop environments have trouble running multiple instances
         at the same time under the same user. This could result in
         detrimental effects when logging in locally, in some cases
         including not being able to log in locally at all after installing
         Chrome Remote Desktop.
    
    While all of these issues could be worked around by creating a custom
    ~/.chrome-remote-desktop-session file and customizing it appropriately,
    this was not very discoverable or user friendly.
    
    This patchset aims to address these issues by introducing a new session
    chooser that allows the user to pick from among the various session
    types installed on their machine. This chooser will appear by default
    when no custom session has been configured, but can still be overridden
    via /etc/chrome-remote-desktop-session or
    ~/.chrome-remote-desktop-session. By offering the user a choice of what
    session to launch, this addresses (2). It also addresses (1) and (3)
    because only the chooser dialog is launched at boot, and a desktop
    environment is only started when the user connects and selects a session
    type. Additionally, if the user logs out of their session, the CRD
    environment will return to the chooser, rather than immediately
    relaunching the full session.
    
    Change-Id: Iead83fdad0691384fcde66192ecbba832d03e2d1
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1775932
    Commit-Queue: Erik Jensen <rkjnsn@chromium.org>
    Reviewed-by: default avatarLambros Lambrou <lambroslambrou@chromium.org>
    Reviewed-by: default avatarJamie Walch <jamiewalch@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#692302}
    e084e7b0
switches.cc 1.39 KB