New issue
Advanced search Search tips

Issue 837692 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 837684
issue 841020



Sign in to add a comment

Make WindowService as a library dispatch events

Project Member Reported by sky@chromium.org, Apr 27 2018

Issue description

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.
 

Comment 1 by sky@chromium.org, Apr 27 2018

Blockedon: -837684
Blocking: 837684

Comment 2 by sky@chromium.org, May 7 2018

Blocking: 840380

Comment 3 by sky@chromium.org, May 8 2018

Blocking: 841020
Project Member

Comment 4 by bugdroid1@chromium.org, May 11 2018

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

Project Member

Comment 5 by bugdroid1@chromium.org, May 14 2018

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

Comment 6 by sky@chromium.org, May 15 2018

Blocking: -840380
Project Member

Comment 7 by bugdroid1@chromium.org, May 15 2018

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

Project Member

Comment 8 by bugdroid1@chromium.org, May 17 2018

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

Project Member

Comment 9 by bugdroid1@chromium.org, May 18 2018

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

Project Member

Comment 10 by bugdroid1@chromium.org, May 18 2018

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

Project Member

Comment 11 by bugdroid1@chromium.org, May 21 2018

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

Project Member

Comment 12 by bugdroid1@chromium.org, May 22 2018

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

Project Member

Comment 13 by bugdroid1@chromium.org, May 24 2018

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

Project Member

Comment 15 by bugdroid1@chromium.org, May 30 2018

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

Project Member

Comment 16 by bugdroid1@chromium.org, May 30 2018

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

Project Member

Comment 17 by bugdroid1@chromium.org, May 31 2018

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

Project Member

Comment 18 by bugdroid1@chromium.org, May 31 2018

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

Comment 19 by sky@chromium.org, Jun 1 2018

Status: Fixed (was: Started)
I'm not aware of any thing else that needs to be done for event dispatching. So closing this out.
Project Member

Comment 20 by bugdroid1@chromium.org, Jun 4 2018

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

Sign in to add a comment