• David Tseng's avatar
    Always start brltty on ChromeVox load · 1e8d3cf5
    David Tseng authored
    Recently, the way in which brltty launches for usb changed. Previously, when a
    display plugs in via usb, a udev rule triggers a shell script.  Now, the udev
    rule triggers a pre-existing Upstart job which triggers the original shell
    script.
    https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/1869773
    
    The pre-existing Upstart job had been used to launch brltty for bluetooth and
    provided programmatic start/stop via dbus from Chrome client code.
    
    As of the above change, there now exists a scenario in which Chrome client code
    might stop brltty but not re-start it.
    
    1. plug in a usb display. This triggers udev -> start the Upstart job
    which correctly launches brltty.
    2. toggle off ChromeVox. (this triggers a stop on the Upstart job).
    3. toggle back on ChromeVox. (no action occurs from either udev or
    Chrome).
    
    result:
    no re-start occurs.
    
    This used to work because in 1, we directly launched brltty via a shell
    script. In 2, we stopped the Upstart job, which was never started. In 3, brltty
    is still around and never lost its connection to the display.
    
    The fix is to always start the Upstart job in 3.
    
    Bug: 1020394
    Change-Id: Ied46d71852e97c750573fe0e79f03a2d2feabe3c
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1893930Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
    Commit-Queue: David Tseng <dtseng@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#711782}
    1e8d3cf5
accessibility_manager.cc 60.9 KB