New issue
Advanced search Search tips

Issue 755244 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

mus: Can't drag window between displays

Project Member Reported by jamescook@chromium.org, Aug 14 2017

Issue description

chrome r494071 + OS 62.0.3173.0 on link with --mus

* Connect external monitor.
* Note mouse can move back and forth between displays.
* Try to drag browser window from internal to external monitor.

There is severe flickering on both displays. The browser window won't go on the external one.

Mouse warping problem?

sky, can you triage?

 

Comment 1 by sky@chromium.org, Aug 23 2017

Cc: msw@chromium.org sky@chromium.org jamescook@chromium.org
 Issue 758270  has been merged into this issue.
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bbd6d6dccbd3dd9c63cc71b5e7c091ba40056f39

commit bbd6d6dccbd3dd9c63cc71b5e7c091ba40056f39
Author: Scott Violet <sky@chromium.org>
Date: Mon Aug 28 17:23:06 2017

chromeos: fix WindowTreeHostMus::MoveCursorToScreenLocationInPixels()

It was calculating a screen location when we really want to supply a
location relative to the display (which is what is passed in).

BUG= 755244 
TEST=none

Change-Id: Ib582c1d29c4a9442a2687bd6de34ea131acfd8cd
Reviewed-on: https://chromium-review.googlesource.com/636482
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497786}
[modify] https://crrev.com/bbd6d6dccbd3dd9c63cc71b5e7c091ba40056f39/ui/aura/mus/window_tree_host_mus.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5f9595786d20b603235f469741c2f7d1a9ae24bd

commit 5f9595786d20b603235f469741c2f7d1a9ae24bd
Author: Scott Violet <sky@chromium.org>
Date: Wed Sep 06 16:12:48 2017

chromeos: change EventDispatcher not to cache display_id

We should always use the display_id generated with the event. To do
otherwise means we may get out of sync with where the event is
actually coming from.

BUG= 755244 
TEST=covered by tests

Change-Id: I798a83755b3d71a4baf491bd6e1ebd5610f89bee
Reviewed-on: https://chromium-review.googlesource.com/651583
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499980}
[modify] https://crrev.com/5f9595786d20b603235f469741c2f7d1a9ae24bd/services/ui/ws/event_dispatcher.cc
[modify] https://crrev.com/5f9595786d20b603235f469741c2f7d1a9ae24bd/services/ui/ws/event_dispatcher.h
[modify] https://crrev.com/5f9595786d20b603235f469741c2f7d1a9ae24bd/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/5f9595786d20b603235f469741c2f7d1a9ae24bd/services/ui/ws/window_tree.cc
[modify] https://crrev.com/5f9595786d20b603235f469741c2f7d1a9ae24bd/services/ui/ws/window_tree.h
[modify] https://crrev.com/5f9595786d20b603235f469741c2f7d1a9ae24bd/services/ui/ws/window_tree_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7232806e1520d4fed4755a4b977c871a4e80cd0c

commit 7232806e1520d4fed4755a4b977c871a4e80cd0c
Author: Scott Violet <sky@chromium.org>
Date: Wed Sep 06 19:17:05 2017

chromeos: make mus not generate event when cursor location changes

The backend already does this for us, so there is no need to generate
an additional event.

BUG= 755244 
TEST=covered by tests

Change-Id: I3755b628d24d2dd974ce62705e094ac63a57bd22
Reviewed-on: https://chromium-review.googlesource.com/653201
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500035}
[modify] https://crrev.com/7232806e1520d4fed4755a4b977c871a4e80cd0c/services/ui/ws/event_dispatcher.cc
[modify] https://crrev.com/7232806e1520d4fed4755a4b977c871a4e80cd0c/services/ui/ws/event_dispatcher.h
[modify] https://crrev.com/7232806e1520d4fed4755a4b977c871a4e80cd0c/services/ui/ws/event_dispatcher_unittest.cc
[modify] https://crrev.com/7232806e1520d4fed4755a4b977c871a4e80cd0c/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/7232806e1520d4fed4755a4b977c871a4e80cd0c/services/ui/ws/window_tree_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/06aff2b41c4680a1fa7722a5301428aa71080acc

commit 06aff2b41c4680a1fa7722a5301428aa71080acc
Author: Scott Violet <sky@chromium.org>
Date: Fri Sep 08 00:26:32 2017

chromeos: make WindowPortMus adjust bounds when dsf changes

As mus stores bounds in pixels any time the device scale factor
changes we need to reset the bounds in mus. By updating the bounds on
dsf change we ensure the LocalSurfaceId is kept up to sync.

BUG= 755244 
TEST=covered by tests

Change-Id: I9c3649cd78fed426a4722a99e9a0cbe5fa41bd45
Reviewed-on: https://chromium-review.googlesource.com/653364
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500449}
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/display/cursor_window_controller.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/display/overscan_calibrator.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/display/overscan_calibrator.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/drag_drop/drag_drop_controller.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/highlighter/highlighter_result_view.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/magnifier/partial_magnification_controller.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/shelf/voice_interaction_overlay.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ash/wm/drag_window_resizer_unittest.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/chrome/browser/chromeos/ui/focus_ring_layer.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/chrome/browser/chromeos/ui/focus_ring_layer.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/components/exo/surface.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/components/ui_devtools/views/ui_devtools_dom_agent.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/content/browser/web_contents/aura/gesture_nav_simple.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/content/browser/web_contents/aura/shadow_layer_delegate.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/content/browser/web_contents/aura/shadow_layer_delegate.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/content/browser/web_contents/web_contents_view_aura.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/content/browser/web_contents/web_contents_view_aura.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/app_list/views/apps_grid_view.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/arc/notification/arc_notification_surface_impl.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/demo/demo_main.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/local/window_port_local.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/local/window_port_local.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/mus/window_mus.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/mus/window_port_mus.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/mus/window_port_mus.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/mus/window_tree_client_unittest.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/test/mus/test_window_tree.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/test/mus/test_window_tree.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/test/test_window_delegate.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/test/test_window_delegate.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/window.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/window.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/window_delegate.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/window_port.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/window_port_for_shutdown.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/window_port_for_shutdown.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura/window_unittest.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura_extra/image_window_delegate.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/aura_extra/image_window_delegate.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/compositor/layer.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/compositor/layer_delegate.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/compositor/layer_unittest.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/keyboard/keyboard_controller.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/animation/ink_drop_mask.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/animation/ink_drop_mask.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/animation/ink_drop_painted_layer_delegates.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/animation/ink_drop_painted_layer_delegates.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/cocoa/bridged_native_widget.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/controls/label.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/controls/label.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/controls/native/native_view_host_aura.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/painter.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/view.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/view.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/desktop_aura/desktop_native_widget_aura.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/native_widget_aura.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/native_widget_aura.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/root_view.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/root_view.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/widget.cc
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/widget.h
[modify] https://crrev.com/06aff2b41c4680a1fa7722a5301428aa71080acc/ui/views/widget/widget_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f

commit 64fde6f7ab6f5e2da77ef4f8f560419537e3af8f
Author: Scott Violet <sky@chromium.org>
Date: Wed Sep 13 18:07:44 2017

chromeos: make mus provide location in DIP display layout

Displays are laid out in two coordinates spaces: DIP and pixels. For
example two displays might have pixels bounds of:

  0,0 1000x1000 and 0,1060 1000x1000

Where as the DIP bounds might be:

  0,0 500x500 and 500,0 1000x1000

Notice the pixel bounds are staggered along the y-axis and the DIP bounds
along the x-axis.

When there is a grab events are delivered relative to the display the
grab occurred on. So, if you click on the first display and drag to
the second display mus internally gets an location of 0, 1060. This
corresponds to pixel location 0,0 in the second display. Generally client
code expects events in the DIP display layout. So that if mus
delivered the event at 0, 1060 client code gets confused. Instead client
code wants the pixel location, but converted to the DIP display layout. In
this example that is a location of 1000,0.

This patch makes it so the root_location of events are in the DIP
display layout (in pixels) *and* provides a second point that corresponds
to the pixel layout location.  The second location is needed for cursor
warping code. Once we we move cursor warping into mus the location in the
pixel layout can go away.

This patch gives the functionality in AshWindowTreeHost::Translate to mus.

BUG= 755244 
TEST=covered by tests

Change-Id: I4d2fa551df70eb2d5e34f9cc7bec85a9682c0099
Reviewed-on: https://chromium-review.googlesource.com/659103
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501690}
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/ash/host/ash_window_tree_host.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/content/renderer/mus/renderer_window_tree_client.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/content/renderer/mus/renderer_window_tree_client.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/public/interfaces/window_tree.mojom
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/BUILD.gn
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/display.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/display.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/display_manager.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/display_unittest.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_dispatcher.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_dispatcher.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_dispatcher_delegate.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_dispatcher_unittest.cc
[add] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_location.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_targeter.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_targeter.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/event_targeter_delegate.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/test_change_tracker.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/test_change_tracker.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/test_utils.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/test_utils.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/window_manager_state.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/window_manager_state_unittest.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/window_tree.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/window_tree.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/services/ui/ws/window_tree_client_unittest.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/ui/aura/mus/window_tree_client_unittest.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/ui/aura/test/mus/window_tree_client_private.cc
[modify] https://crrev.com/64fde6f7ab6f5e2da77ef4f8f560419537e3af8f/ui/aura/window_tree_host.h

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4a0d366f22d1d4ca69ec978887f41323423b6949

commit 4a0d366f22d1d4ca69ec978887f41323423b6949
Author: Scott Violet <sky@chromium.org>
Date: Wed Sep 13 21:38:59 2017

chromeos: don't set target for key events

Key events need to be dispatched to the focused window. If we set the
target of the window at the time the event was generated and focus is
somewhere else, then we may end up hitting CHECKs in
WindowEventDispatcher. By not setting the target we ensure the event
goes to the focused window.

BUG= 755244 
TEST=covered by tests

Change-Id: I53416480f7327a49001e59ec43a0cf5086d6fb3b
Reviewed-on: https://chromium-review.googlesource.com/664607
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501758}
[modify] https://crrev.com/4a0d366f22d1d4ca69ec978887f41323423b6949/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/4a0d366f22d1d4ca69ec978887f41323423b6949/ui/aura/mus/window_tree_client_unittest.cc
[modify] https://crrev.com/4a0d366f22d1d4ca69ec978887f41323423b6949/ui/aura/test/aura_test_base.h

Comment 8 by sky@chromium.org, Sep 13 2017

Status: Fixed (was: Assigned)

Comment 9 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Comment 10 by dchan@chromium.org, Jan 23 2018

Status: Fixed (was: Archived)
Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment