This tracks the works to support mouse/touch injection from iOS client to the host.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d commit d980e96a774c7e8d82039e5ef371b6ac0cb33b5d Author: yuweih <yuweih@chromium.org> Date: Tue May 09 03:53:05 2017 [CRD iOS] Inject mouse events to the host This CL adds functionality to inject these mouse events: * One-finger tap -> left click * Two-finger tap -> right click * Long-press -> Dragging in touch input mode. This CL also factors out an InputStrategy class from GestureInterpreter so that later we can easily introduce the trackpad input mode. BUG= 718704 Review-Url: https://codereview.chromium.org/2862893003 Cr-Commit-Position: refs/heads/master@{#470171} [modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/BUILD.gn [modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/desktop_viewport.cc [modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/desktop_viewport.h [add] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/direct_input_strategy.cc [add] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/direct_input_strategy.h [modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/gesture_interpreter.cc [modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/gesture_interpreter.h [add] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/input_strategy.h [modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/ios/client_gestures.mm [modify] https://crrev.com/d980e96a774c7e8d82039e5ef371b6ac0cb33b5d/remoting/client/ios/session/remoting_client.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7fbc8055f73d33056aafa74a39b8a0f3b5c99547 commit 7fbc8055f73d33056aafa74a39b8a0f3b5c99547 Author: yuweih <yuweih@chromium.org> Date: Wed May 17 05:23:49 2017 [CRD iOS] Hook the touch feedback animation and some refactoring This CL: 1. Refactors a RenderStub interface to be used by GestureInterpreter to control the renderer directly. 2. Hook the touch feedback animation to GestureInterpreter. 3. Redesign the cursor tracking of the InputStrategy a little bit. Simply let the InputStrategy itself to track the cursor position, which can simplify a few things. BUG= 718704 Review-Url: https://codereview.chromium.org/2879743002 Cr-Commit-Position: refs/heads/master@{#472337} [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/BUILD.gn [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/direct_input_strategy.cc [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/direct_input_strategy.h [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/gesture_interpreter.cc [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/gesture_interpreter.h [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/input_strategy.h [add] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/renderer_proxy.cc [add] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/client/ui/renderer_proxy.h [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/ios/display/gl_display_handler.h [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/ios/display/gl_display_handler.mm [modify] https://crrev.com/7fbc8055f73d33056aafa74a39b8a0f3b5c99547/remoting/ios/session/remoting_client.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f6db64d1daaeeb654e6fde7badf189bd82821ae8 commit f6db64d1daaeeb654e6fde7badf189bd82821ae8 Author: yuweih <yuweih@chromium.org> Date: Wed May 17 06:34:33 2017 [CRD iOS] Injecting scroll events w/ fling animation This CL adds two-finger scrolling support with fling animation to the CRD iOS client. BUG= 718704 Review-Url: https://codereview.chromium.org/2882653004 Cr-Commit-Position: refs/heads/master@{#472353} [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/client/ui/direct_input_strategy.cc [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/client/ui/direct_input_strategy.h [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/client/ui/fling_animation.cc [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/client/ui/gesture_interpreter.cc [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/client/ui/gesture_interpreter.h [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/client/ui/input_strategy.h [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/ios/client_gestures.h [modify] https://crrev.com/f6db64d1daaeeb654e6fde7badf189bd82821ae8/remoting/ios/client_gestures.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6 commit e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6 Author: yuweih <yuweih@chromium.org> Date: Fri May 19 01:22:45 2017 [CRD iOS] Trackpad Input Mode This CL adds support for the trackpad input mode to the CRD iOS client. It also renames some gestures to be more abstract so that it's easier to do things like using 3D touch for dragging in the future. BUG= 718704 Review-Url: https://codereview.chromium.org/2891603002 Cr-Commit-Position: refs/heads/master@{#473012} [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/BUILD.gn [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/desktop_viewport.cc [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/desktop_viewport.h [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/direct_input_strategy.cc [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/direct_input_strategy.h [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/gesture_interpreter.cc [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/gesture_interpreter.h [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/input_strategy.h [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/renderer_proxy.cc [add] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/trackpad_input_strategy.cc [add] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/client/ui/trackpad_input_strategy.h [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/ios/app/host_view_controller.mm [modify] https://crrev.com/e1bd6ca3c206cf48b29523ae64bdfeca06a1e1b6/remoting/ios/client_gestures.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b932f1dd70ed60e43ca6fea500d01e155f2eae36 commit b932f1dd70ed60e43ca6fea500d01e155f2eae36 Author: yuweih <yuweih@chromium.org> Date: Tue May 23 21:18:52 2017 [CRD iOS] Ignore touch event when the touch point is out of the canvas in direct input mode Previously if the user taps outside the bounds of the desktop canvas, GestureInterpreter will still attempt to inject the out-of-bound mouse event and show the touch feedback. The mouse event will be clamped back to the edge of the desktop (e.g. (50, -100) => (50, 0)). The Android client will ignore out-of-bound touch inputs in touch mode. This CL does the same thing for iOS client. BUG= 718704 Review-Url: https://codereview.chromium.org/2897143002 Cr-Commit-Position: refs/heads/master@{#474057} [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/desktop_viewport.cc [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/desktop_viewport.h [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/direct_input_strategy.cc [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/direct_input_strategy.h [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/gesture_interpreter.cc [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/gesture_interpreter.h [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/input_strategy.h [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/trackpad_input_strategy.cc [modify] https://crrev.com/b932f1dd70ed60e43ca6fea500d01e155f2eae36/remoting/client/ui/trackpad_input_strategy.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e745346e71a014a64f007da11dd719427175d872 commit e745346e71a014a64f007da11dd719427175d872 Author: yuweih <yuweih@chromium.org> Date: Thu May 25 18:44:49 2017 [CRD iOS] Add support for three-finger gestures This CL adds gesture supports for: * Three-finger tap => inject middle click * Three-finger swipe => show/hide keyboard The swipe-down gesture was to show the navigation bar in Android, but let's use it to hide the keyboard for now. THis CL also refactors InjectMouseClick a little bit to handle all three button clicks. BUG= 718704 Review-Url: https://codereview.chromium.org/2904703003 Cr-Commit-Position: refs/heads/master@{#474724} [modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/client/gesture_interpreter.cc [modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/client/gesture_interpreter.h [modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/ios/app/host_view_controller.mm [modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/ios/client_gestures.h [modify] https://crrev.com/e745346e71a014a64f007da11dd719427175d872/remoting/ios/client_gestures.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6cbaa8807189213cb4c94be2523a0b4526cda935 commit 6cbaa8807189213cb4c94be2523a0b4526cda935 Author: yuweih <yuweih@chromium.org> Date: Thu May 25 19:18:10 2017 [CRD iOS] Cleanup ClientGestures Since we have already added support for all gestures we previously have, we can start cleaning up the ClientGestures class now. This CL: * Removes unused and/or commented-out logic in ClientGestures. * Hides private details about the class inside the .mm file using class extension. BUG= 718704 Review-Url: https://codereview.chromium.org/2898243005 Cr-Commit-Position: refs/heads/master@{#474746} [modify] https://crrev.com/6cbaa8807189213cb4c94be2523a0b4526cda935/remoting/ios/client_gestures.h [modify] https://crrev.com/6cbaa8807189213cb4c94be2523a0b4526cda935/remoting/ios/client_gestures.mm
Comment 1 by bugdroid1@chromium.org
, May 9 2017