-
Joe Downing authored
In order to invoke common platform tasks (send attention sequence and lock workstation), CRD currently relies on injecting key events on the client and picking them up on the host. There is a listener which tracks the current key events and then calls the platform API once it sees the trigger. The problem with this approach is if there is a stuck key (i.e. we fail to send a key up event) then this functionality is broken. While we should fix bugs which cause lost key events, we should also look for ways to prevent issues like that from affecting other features. My change allows the client to send a single message to invoke an action like LockWorkstation() or SendSAS() which will then be executed in the user's session. The change is targeted at the Windows multi-process architecture but I've used interfaces to allow for other platforms to use it (similar to how InputInjection and the other event protos are used) if we decide to implement it in the future. This CL sets up the plumbing to get the request from the network process to the desktop process on Windows. There will be a follow-up CL which adds the WebRTC data channel and ClientSession integration. Bug: 892434 Change-Id: Iedfe8c4778fbaacacc68754c6d24e7fd485b0407 Reviewed-on: https://chromium-review.googlesource.com/c/1266100Reviewed-by:
Daniel Cheng <dcheng@chromium.org> Reviewed-by:
Jamie Walch <jamiewalch@chromium.org> Commit-Queue: Joe Downing <joedow@chromium.org> Cr-Commit-Position: refs/heads/master@{#600463}
505ae0d0