This involves making sure any events destined for a remote client end up being routed the WindowTree apis, as well as adding queuing of events.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/39c503de4a11b907211890ca1030d3f32d28e0ae commit 39c503de4a11b907211890ca1030d3f32d28e0ae Author: Scott Violet <sky@chromium.org> Date: Fri May 11 04:50:46 2018 chromeos: wires up pointer event observers for ws2 When a client is notified of events it's told if the event matches a pointer observer. If the event does match a pointer observer, a single event is sent to the client. This implies I need a post event processing hook to determine if the client was notified already and not send if appropriate. This is why I added WindowEventDispatcherObserver as a way to deal with this. I'll be more obvious in a following patch. BUG= 837692 TEST=covered by test Change-Id: Ifb3e332466b3e6a6ee09c625020d6dbf9ed1a54e Reviewed-on: https://chromium-review.googlesource.com/1054413 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#557797} [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/BUILD.gn [add] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/pointer_watcher.cc [add] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/pointer_watcher.h [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/test_window_tree_client.cc [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/test_window_tree_client.h [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/window_service_client.cc [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/window_service_client.h [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/window_service_client_test_helper.cc [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/window_service_client_test_helper.h [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/services/ui/ws2/window_service_client_unittest.cc [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/ui/aura/BUILD.gn [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/ui/aura/env.cc [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/ui/aura/env.h [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/ui/aura/window_event_dispatcher.cc [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/ui/aura/window_event_dispatcher.h [add] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/ui/aura/window_event_dispatcher_observer.h [modify] https://crrev.com/39c503de4a11b907211890ca1030d3f32d28e0ae/ui/aura/window_targeter.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6c883a588e08eedb1cef6099d28bd13f5dc09677 commit 6c883a588e08eedb1cef6099d28bd13f5dc09677 Author: Scott Violet <sky@chromium.org> Date: Mon May 14 23:46:19 2018 chromeos: adds kMus2 config for WindowTreeClient In hopes of simplifying the code I want to have ws2 operate in DIPs. This means a bunch of code assuming pixels in WindowTreeClient needs to be behind a conditional. BUG= 837692 TEST=none Change-Id: I13b88eb676eb79247cdf4a435ac673470c359f91 Reviewed-on: https://chromium-review.googlesource.com/1055267 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Cr-Commit-Position: refs/heads/master@{#558532} [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ash/components/quick_launch/quick_launch_application.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ash/components/touch_hud/touch_hud_application.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/mus/mus_types.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/mus/window_tree_client.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/mus/window_tree_client.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/mus/window_tree_host_mus.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/mus/window_tree_host_mus.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/aura_test_base.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/aura_test_base.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/aura_test_helper.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/aura_test_helper.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/mus/test_window_tree_client_setup.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/mus/test_window_tree_client_setup.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/mus/window_tree_client_private.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/test/mus/window_tree_client_private.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/window_event_dispatcher_unittest.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/window_targeter_unittest.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/aura/window_unittest.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/views/mus/aura_init.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/views/mus/aura_init.h [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/views/mus/mus_client.cc [modify] https://crrev.com/6c883a588e08eedb1cef6099d28bd13f5dc09677/ui/views/mus/mus_client.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/148903c2cc873824f8de61807b7f9931a1f30322 commit 148903c2cc873824f8de61807b7f9931a1f30322 Author: Scott Violet <sky@chromium.org> Date: Tue May 15 22:52:47 2018 chromeos: wires up sending events to remote clients There is still work to be done here, but this is a good step. The interesting parts: . An aura::WindowTargeter is used to ensure events target the right Window. In particular if one client intercepts events from another client. . Custom EventHandlers are used to forward to the remote client. This is mildly tricky to ensure top-levels are handled correctly. BUG= 837692 TEST=covered by test Change-Id: I58f0d23e7d7dd6c6c31f3cfbb44889588c4f8f84 Reviewed-on: https://chromium-review.googlesource.com/1054427 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Cr-Commit-Position: refs/heads/master@{#558868} [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/client_window.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/client_window.h [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/pointer_watcher.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/pointer_watcher.h [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/test_window_service_delegate.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/test_window_service_delegate.h [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/test_window_tree_client.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/test_window_tree_client.h [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/window_service.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/window_service_client.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/window_service_client.h [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/window_service_client_test_helper.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/window_service_client_test_helper.h [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/services/ui/ws2/window_service_client_unittest.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/ui/aura/window_event_dispatcher.cc [modify] https://crrev.com/148903c2cc873824f8de61807b7f9931a1f30322/ui/events/event_target.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70 commit b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70 Author: Scott Violet <sky@chromium.org> Date: Thu May 17 04:43:12 2018 chromeos: Makes WindowService lifetime tied to that of Shell The WindowService (indirectly) installs observers on various objects created by Ash. Because of this the WindowService really needs to be destroyed before ash's Shell. This patch introduces the WindowServiceOwner, which owns the WindowService. ServiceManager supports this by way of providing a function to bind the ServiceRequest directly. When the request is seen WindowServiceOwner creates a ServiceContext, which owns the WindowService. WindowServiceOwner owns the ServiceContext. Shell owns the WindowServiceOwner, so we can guarantee a particular shutdown ordering. I also made it so the WindowService is immediately created. This was mostly because it simplified the code slightly, but I could make it lazily created if necessary. BUG= 837692 TEST=none (test will follow) Change-Id: I2628292c73f4fe86e48cad55d2b63e9345fcd831 Reviewed-on: https://chromium-review.googlesource.com/1062717 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Reviewed-by: Ken Rockot <rockot@chromium.org> Cr-Commit-Position: refs/heads/master@{#559421} [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/BUILD.gn [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/shell.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/shell.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/shell/content/client/shell_browser_main_parts.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/shell/content/client/shell_content_browser_client.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/shell/content/client/shell_content_browser_client.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/shell_init_params.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/shell_init_params.h [add] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/ws/window_service_owner.cc [add] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/ash/ws/window_service_owner.h [delete] https://crrev.com/38bf8a5cda07aa43bea113b2d2d0f7a67a7326be/ash/ws/window_service_util.cc [delete] https://crrev.com/38bf8a5cda07aa43bea113b2d2d0f7a67a7326be/ash/ws/window_service_util.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/DEPS [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/ash_service_registry.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/ash_service_registry.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/browser_process_platform_part_base.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/browser_process_platform_part_base.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/browser_process_platform_part_chromeos.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/browser_process_platform_part_chromeos.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/chrome_content_browser_client.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/browser/ui/ash/ash_shell_init.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chrome/test/base/view_event_test_platform_part_chromeos.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chromecast/browser/cast_content_browser_client.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/chromecast/browser/cast_content_browser_client.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/content/browser/service_manager/service_manager_context.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/content/public/browser/content_browser_client.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/content/shell/browser/shell_content_browser_client.cc [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/content/shell/browser/shell_content_browser_client.h [modify] https://crrev.com/b7f4df2eb0385ed5a8ad671c4a2f7375eeb2af70/services/ui/ws2/window_service_client.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f20cf06e0b077953a4585688c4d8b78aa6dff2dc commit f20cf06e0b077953a4585688c4d8b78aa6dff2dc Author: Mike Wasserman <msw@chromium.org> Date: Fri May 18 21:01:41 2018 ws: Add POINTER_ENTERED and POINTER_CAPTURE_CHANGED mojo event types. Change one-off conversion functions TypeConverters for tracking. Make enum naming and ordering match ui::EventType. This fixes some crashes observed running KSV as a mojo app with ws2: https://chromium-review.googlesource.com/c/chromium/src/+/1060163 Bug: 841020 , 837692 Change-Id: If3e33ac6a35d5fb09beb4317140c1c04d18b4eb5 Reviewed-on: https://chromium-review.googlesource.com/1065199 Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Commit-Queue: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#560032} [modify] https://crrev.com/f20cf06e0b077953a4585688c4d8b78aa6dff2dc/services/ui/ws/event_matcher.cc [modify] https://crrev.com/f20cf06e0b077953a4585688c4d8b78aa6dff2dc/ui/events/mojo/event_constants.mojom [modify] https://crrev.com/f20cf06e0b077953a4585688c4d8b78aa6dff2dc/ui/events/mojo/event_struct_traits.cc [modify] https://crrev.com/f20cf06e0b077953a4585688c4d8b78aa6dff2dc/ui/events/mojo/event_struct_traits.h [modify] https://crrev.com/f20cf06e0b077953a4585688c4d8b78aa6dff2dc/ui/events/mojo/struct_traits_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e98cc618c31b190cc8db1cc49745b82736fcaecd commit e98cc618c31b190cc8db1cc49745b82736fcaecd Author: Mike Wasserman <msw@chromium.org> Date: Fri May 18 22:55:27 2018 ws: Send events to the owning client when the embedded one is null. This fixes a crash observed running KSV as a mojo app with ws2: https://chromium-review.googlesource.com/c/chromium/src/+/1060163 Bug: 841020 , 837692 Change-Id: I0ea7f2a9b503473f255004b1effc8dcf72cfa5ff Reviewed-on: https://chromium-review.googlesource.com/1066742 Reviewed-by: Scott Violet <sky@chromium.org> Commit-Queue: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#560084} [modify] https://crrev.com/e98cc618c31b190cc8db1cc49745b82736fcaecd/services/ui/ws2/client_window.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c3b0927f9fdaf7cab1777d35edf19825200c850a commit c3b0927f9fdaf7cab1777d35edf19825200c850a Author: Scott Violet <sky@chromium.org> Date: Mon May 21 22:43:42 2018 chromeos: fix bug with events being sent to wrong window The code for forwaring events to remote clients is done using pre-target-handlers. Pre-target-handlers give precedence to pre-target-handlers attached to ancestors. As the pre-target handlers for event forwarding really only care about processing when the associated window is the target, this code adds an early out. This ensures forwarding doesn't happen just because a descendant happens to be the target. BUG= 837692 TEST=covered by test Change-Id: Ib5e31c4b6e7262e4d805a85bd437ba3e81b7ae8b Reviewed-on: https://chromium-review.googlesource.com/1067729 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#560385} [modify] https://crrev.com/c3b0927f9fdaf7cab1777d35edf19825200c850a/services/ui/ws2/client_window.cc [modify] https://crrev.com/c3b0927f9fdaf7cab1777d35edf19825200c850a/services/ui/ws2/test_window_tree_client.cc [modify] https://crrev.com/c3b0927f9fdaf7cab1777d35edf19825200c850a/services/ui/ws2/test_window_tree_client.h [modify] https://crrev.com/c3b0927f9fdaf7cab1777d35edf19825200c850a/services/ui/ws2/window_service_client_test_helper.cc [modify] https://crrev.com/c3b0927f9fdaf7cab1777d35edf19825200c850a/services/ui/ws2/window_service_client_test_helper.h [modify] https://crrev.com/c3b0927f9fdaf7cab1777d35edf19825200c850a/services/ui/ws2/window_service_client_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/299955ee6754ace4dfd6d8c333189f9087ed5d29 commit 299955ee6754ace4dfd6d8c333189f9087ed5d29 Author: Scott Violet <sky@chromium.org> Date: Tue May 22 17:38:51 2018 chromeos: make sure state is reset at appropriate times The EventHandler used to forward events to the right client maintains state that needs to be reset in certain cases, as otherwise it won't properly clean up the state. In particular if capture or visibility changes then EventHandler no longer gets the events. BUG= 837692 TEST=covered by test Change-Id: I560960ea93462f68c2e252dbd1b5dc9c581ff886 Reviewed-on: https://chromium-review.googlesource.com/1067883 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#560685} [modify] https://crrev.com/299955ee6754ace4dfd6d8c333189f9087ed5d29/services/ui/ws2/BUILD.gn [modify] https://crrev.com/299955ee6754ace4dfd6d8c333189f9087ed5d29/services/ui/ws2/client_window.cc [modify] https://crrev.com/299955ee6754ace4dfd6d8c333189f9087ed5d29/services/ui/ws2/client_window.h [add] https://crrev.com/299955ee6754ace4dfd6d8c333189f9087ed5d29/services/ui/ws2/client_window_test_helper.cc [add] https://crrev.com/299955ee6754ace4dfd6d8c333189f9087ed5d29/services/ui/ws2/client_window_test_helper.h [modify] https://crrev.com/299955ee6754ace4dfd6d8c333189f9087ed5d29/services/ui/ws2/window_service_client_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/caae4f56e8909255579030c0bf266a6ed4ea8085 commit caae4f56e8909255579030c0bf266a6ed4ea8085 Author: Scott Violet <sky@chromium.org> Date: Thu May 24 16:33:26 2018 chromeos: make KeyEvents go to the embedder if the embedder intercepts events This is needed as KeyEvents are sent directly to the focused window, where as LocatedEvents consider the WindowTargeter of each window. BUG= 837692 TEST=covered by tests Change-Id: I935aaa1aaea6a8ea0339e99cc076ee7d459d9034 Reviewed-on: https://chromium-review.googlesource.com/1070857 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Cr-Commit-Position: refs/heads/master@{#561521} [modify] https://crrev.com/caae4f56e8909255579030c0bf266a6ed4ea8085/services/ui/ws2/client_window.cc [modify] https://crrev.com/caae4f56e8909255579030c0bf266a6ed4ea8085/services/ui/ws2/client_window.h [modify] https://crrev.com/caae4f56e8909255579030c0bf266a6ed4ea8085/services/ui/ws2/focus_handler_unittest.cc [modify] https://crrev.com/caae4f56e8909255579030c0bf266a6ed4ea8085/services/ui/ws2/window_service_client_test_helper.cc [modify] https://crrev.com/caae4f56e8909255579030c0bf266a6ed4ea8085/services/ui/ws2/window_service_client_test_helper.h [modify] https://crrev.com/caae4f56e8909255579030c0bf266a6ed4ea8085/services/ui/ws2/window_service_test_setup.cc [modify] https://crrev.com/caae4f56e8909255579030c0bf266a6ed4ea8085/services/ui/ws2/window_service_test_setup.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cf0f0cb10702201accc7161356dee0ed48079258 commit cf0f0cb10702201accc7161356dee0ed48079258 Author: Scott Violet <sky@chromium.org> Date: Tue May 29 23:26:47 2018 chromeos: makes WindowService forward touch events correctly Extends logic for mouse only events to touch events too. BUG= 837692 TEST=covered by tests Change-Id: I7eef754e8d16fcd152810ab14fe376493a8afa4f Reviewed-on: https://chromium-review.googlesource.com/1076905 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#562650} [modify] https://crrev.com/cf0f0cb10702201accc7161356dee0ed48079258/services/ui/ws2/client_window.cc [modify] https://crrev.com/cf0f0cb10702201accc7161356dee0ed48079258/services/ui/ws2/client_window.h [modify] https://crrev.com/cf0f0cb10702201accc7161356dee0ed48079258/services/ui/ws2/client_window_test_helper.cc [modify] https://crrev.com/cf0f0cb10702201accc7161356dee0ed48079258/services/ui/ws2/client_window_test_helper.h [modify] https://crrev.com/cf0f0cb10702201accc7161356dee0ed48079258/services/ui/ws2/window_service_client.cc [modify] https://crrev.com/cf0f0cb10702201accc7161356dee0ed48079258/services/ui/ws2/window_service_client_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2e4b3ac2a6c16f872f19a9895c3053762faf12e0 commit 2e4b3ac2a6c16f872f19a9895c3053762faf12e0 Author: Scott Violet <sky@chromium.org> Date: Wed May 30 19:36:49 2018 chromeos: If there is capture, send to owner or do nothing For top-levels, if there is capture then send to the client (if the client requested capture), otherwise do nothing (local environment handles it). For non-top levels if there is capture then always use the capture-owner. BUG= 837692 TEST=covered by tests Change-Id: I38914a49866c49e4827b47b8748e2e6ebb143679 Reviewed-on: https://chromium-review.googlesource.com/1077968 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#562956} [modify] https://crrev.com/2e4b3ac2a6c16f872f19a9895c3053762faf12e0/services/ui/ws2/client_window.cc [modify] https://crrev.com/2e4b3ac2a6c16f872f19a9895c3053762faf12e0/services/ui/ws2/client_window.h [modify] https://crrev.com/2e4b3ac2a6c16f872f19a9895c3053762faf12e0/services/ui/ws2/window_service_client.cc [modify] https://crrev.com/2e4b3ac2a6c16f872f19a9895c3053762faf12e0/services/ui/ws2/window_service_client_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fe89fd3ba7bd6f0c580b4899f3e7250c40508fb4 commit fe89fd3ba7bd6f0c580b4899f3e7250c40508fb4 Author: Scott Violet <sky@chromium.org> Date: Wed May 30 23:12:16 2018 chromeos: makes intercepts events work with capture If an embedding is created such that the embedder intercepts events, then the embedder should get events regardless of capture. BUG= 837692 , 837696 TEST=covered by test Change-Id: I8ed3e30ff7973d319bb5ac91323382c1743818c1 Reviewed-on: https://chromium-review.googlesource.com/1080092 Reviewed-by: Michael Wasserman <msw@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#563054} [modify] https://crrev.com/fe89fd3ba7bd6f0c580b4899f3e7250c40508fb4/services/ui/ws2/client_window.cc [modify] https://crrev.com/fe89fd3ba7bd6f0c580b4899f3e7250c40508fb4/services/ui/ws2/window_service_client_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fabf9117423a92d6989b3f45b465e6c759cb105e commit fabf9117423a92d6989b3f45b465e6c759cb105e Author: Scott Violet <sky@chromium.org> Date: Thu May 31 21:09:00 2018 chromeos: makes it so WindowService doesn't send event and observed event There are two paths for clients to be notified of events: . OnWindowInputEvent() - used for any events that target the client. . OnPointerEventObserved() - used when the client wants to see pointer events it normally wouldn't (because they target another client). This patch makes it so that if we call OnWindowInputEvent() *and* the event also matches a pointer-watcher, we don't call OnPointerEventObserved. This is because OnWindowInputEvent() has a way to tell the client if the event also matches a pointer-watcher. BUG= 837692 TEST=covered by test Change-Id: Iabcd300a290e1be15a4fabfbcb8faeb454b20d79 Reviewed-on: https://chromium-review.googlesource.com/1081231 Reviewed-by: Michael Wasserman <msw@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#563375} [modify] https://crrev.com/fabf9117423a92d6989b3f45b465e6c759cb105e/services/ui/ws2/pointer_watcher.cc [modify] https://crrev.com/fabf9117423a92d6989b3f45b465e6c759cb105e/services/ui/ws2/pointer_watcher.h [modify] https://crrev.com/fabf9117423a92d6989b3f45b465e6c759cb105e/services/ui/ws2/window_service_client.cc [modify] https://crrev.com/fabf9117423a92d6989b3f45b465e6c759cb105e/services/ui/ws2/window_service_client_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49 commit 2cc29e0ee34af61b17ce9f153c4fd562cb05cb49 Author: Scott Violet <sky@chromium.org> Date: Thu May 31 22:59:33 2018 aura: changes aura not to convert coordinates from ws2 With ws2 events are in dips, so no conversion is necessary. This updates aura_unittests that target mus to ws2 (main difference is pixels). We will move to this once --mash has been removed. BUG= 837692 TEST=covered by test Change-Id: I3ae9032b7945b66a0b3c309fe4e0b1b4fc859eb5 Reviewed-on: https://chromium-review.googlesource.com/1079805 Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#563418} [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/mus/window_tree_client.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/mus/window_tree_client_unittest.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/mus/window_tree_host_mus.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/test/aura_mus_test_base.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/test/aura_test_helper.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/test/test_screen.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/window_event_dispatcher.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/window_event_dispatcher.h [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/window_tree_host.cc [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/window_tree_host.h [modify] https://crrev.com/2cc29e0ee34af61b17ce9f153c4fd562cb05cb49/ui/aura/window_unittest.cc
I'm not aware of any thing else that needs to be done for event dispatching. So closing this out.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/af1ebf7a944051806a1a746558a20aa6d7a3c99d commit af1ebf7a944051806a1a746558a20aa6d7a3c99d Author: Scott Violet <sky@chromium.org> Date: Mon Jun 04 16:08:13 2018 chromeos: makes all located events check location against non-client ClientWindowTargeter was only checking press events. This means move events (and other similar ones) in the non-client area would not make it to the local environment. BUG= 837692 TEST=covered by test Change-Id: Idc021bb75115cfc1a2394e8b4e702b9e27f3d7b9 Reviewed-on: https://chromium-review.googlesource.com/1085370 Reviewed-by: Michael Wasserman <msw@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org> Cr-Commit-Position: refs/heads/master@{#564109} [modify] https://crrev.com/af1ebf7a944051806a1a746558a20aa6d7a3c99d/services/ui/ws2/client_window.cc [modify] https://crrev.com/af1ebf7a944051806a1a746558a20aa6d7a3c99d/services/ui/ws2/window_service_client_unittest.cc
Comment 1 by sky@chromium.org
, Apr 27 2018Blocking: 837684