New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 642894 link

Starred by 17 users

Issue metadata

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

Blocked on:
issue 631136



Sign in to add a comment

Extended desktop mode for Exosphere with ARC clients

Project Member Reported by domlasko...@chromium.org, Aug 31 2016

Issue description

ARC apps are currently confined to the primary display. This bug tracks server-side support for extended desktop mode in ARC. See also internal bug b/25953056 for client-side support.
 
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 27 2016

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

commit 4b33bfeda856f7ae20ffa43176e5bd529d5a100a
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Oct 27 00:34:22 2016

Generalize layer mirroring for phantom windows

Previously, the layers of a phantom window were recreated when the
surface changed in the corresponding layers of the original window.
The code also assumed that layers with surfaces are leaves in the
layer tree, but Exosphere surfaces are nested. Recursive layer
cloning would be inefficient for surfaces changing in each frame,
so this CL adds an alternative way to mirror layers. In addition,
the bounds of Exosphere surfaces relative to their parent window
are updated whenever the window moves, so this CL provides a way
to synchronize relative positions of layers in phantom windows.

In addition to implementing phantom windows for ARC apps, this CL
fixes three bugs related to mirroring:

  1) Memory corruption due to the non-recursive layer cloning.
  2) Dangling pointers due to observers sticking around.
  3) Black Alt+Tab previews for ARC windows.

BUG= 642894 
BUG=649452
BUG= 653113 
TEST=ARC apps that render continuously (e.g. games, video players)
     can be dragged to external displays, and their content is
     mirrored in phantom windows.
TEST=ARC apps are mirrored in Alt+Tab previews.
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2383263002
Cr-Commit-Position: refs/heads/master@{#427891}

[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/BUILD.gn
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/aura/wm_window_aura.cc
[delete] https://crrev.com/9da2eea3e67b631828d981152ff80f68ae599ef5/ash/common/wm/forwarding_layer_delegate.cc
[delete] https://crrev.com/9da2eea3e67b631828d981152ff80f68ae599ef5/ash/common/wm/forwarding_layer_delegate.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/common/wm/window_cycle_list.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/rotator/screen_rotation_animator.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/wm/window_mirror_view.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ash/wm/window_mirror_view.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/cc/layers/surface_layer.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/chrome/browser/ui/views/frame/contents_web_view.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/components/exo/surface.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/components/exo/surface.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/components/exo/surface_unittest.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/arc/notification/arc_custom_notification_view.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/aura/window.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_observer.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_owner.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_owner.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_owner_delegate.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_tree_owner.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_tree_owner.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/compositor/layer_unittest.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/views/view.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/views/view_unittest_aura.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/wm/core/window_animations.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/wm/core/window_util.cc
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/wm/core/window_util.h
[modify] https://crrev.com/4b33bfeda856f7ae20ffa43176e5bd529d5a100a/ui/wm/core/window_util_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2883
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/497b50fc19904a059de566474ff099519a4c881a

commit 497b50fc19904a059de566474ff099519a4c881a
Author: Luis Hector Chavez <lhchavez@google.com>
Date: Thu Oct 27 21:11:39 2016

[M55] Generalize layer mirroring for phantom windows

Previously, the layers of a phantom window were recreated when the
surface changed in the corresponding layers of the original window.
The code also assumed that layers with surfaces are leaves in the
layer tree, but Exosphere surfaces are nested. Recursive layer
cloning would be inefficient for surfaces changing in each frame,
so this CL adds an alternative way to mirror layers. In addition,
the bounds of Exosphere surfaces relative to their parent window
are updated whenever the window moves, so this CL provides a way
to synchronize relative positions of layers in phantom windows.

In addition to implementing phantom windows for ARC apps, this CL
fixes three bugs related to mirroring:

  1) Memory corruption due to the non-recursive layer cloning.
  2) Dangling pointers due to observers sticking around.
  3) Black Alt+Tab previews for ARC windows.

R=lhchavez@chromium.org
TBR=danakj@chromium.org, oshima@chromium.org, reveman@chromium.org, sadrul@chromium.org, sky@chromium.org
BUG= 642894 
BUG=649452
BUG= 653113 
TEST=ARC apps that render continuously (e.g. games, video players)
     can be dragged to external displays, and their content is
     mirrored in phantom windows.
TEST=ARC apps are mirrored in Alt+Tab previews.
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2383263002
Cr-Commit-Position: refs/heads/master@{#427891}
(cherry picked from commit 4b33bfeda856f7ae20ffa43176e5bd529d5a100a)

Review URL: https://codereview.chromium.org/2459653003 .

Cr-Commit-Position: refs/branch-heads/2883@{#345}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/BUILD.gn
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/aura/wm_window_aura.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/common/wm/window_cycle_list.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/rotator/screen_rotation_animator.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/wm/window_mirror_view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/wm/window_mirror_view.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/cc/layers/surface_layer.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/chrome/browser/ui/views/frame/contents_web_view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/components/exo/surface.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/components/exo/surface.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/components/exo/surface_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/arc/notification/arc_custom_notification_view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/aura/window.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_observer.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner_delegate.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_tree_owner.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_tree_owner.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/views/view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/views/view_unittest_aura.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_animations.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_util.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_util.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_util_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 27 2016

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

commit 1d94ce480b3688a564ca4e7ff57cc93191d95743
Author: lhchavez <lhchavez@chromium.org>
Date: Thu Oct 27 21:55:00 2016

Revert of [M55] Generalize layer mirroring for phantom windows (patchset #1 id:1 of https://codereview.chromium.org/2459653003/ )

Reason for revert:
This broke Windows build: https://bugs.chromium.org/p/chromium/issues/detail?id=660183

Original issue's description:
> [M55] Generalize layer mirroring for phantom windows
>
> Previously, the layers of a phantom window were recreated when the
> surface changed in the corresponding layers of the original window.
> The code also assumed that layers with surfaces are leaves in the
> layer tree, but Exosphere surfaces are nested. Recursive layer
> cloning would be inefficient for surfaces changing in each frame,
> so this CL adds an alternative way to mirror layers. In addition,
> the bounds of Exosphere surfaces relative to their parent window
> are updated whenever the window moves, so this CL provides a way
> to synchronize relative positions of layers in phantom windows.
>
> In addition to implementing phantom windows for ARC apps, this CL
> fixes three bugs related to mirroring:
>
>   1) Memory corruption due to the non-recursive layer cloning.
>   2) Dangling pointers due to observers sticking around.
>   3) Black Alt+Tab previews for ARC windows.
>
> R=lhchavez@chromium.org
> TBR=danakj@chromium.org, oshima@chromium.org, reveman@chromium.org, sadrul@chromium.org, sky@chromium.org
> BUG= 642894 
> BUG=649452
> BUG= 653113 
> TEST=ARC apps that render continuously (e.g. games, video players)
>      can be dragged to external displays, and their content is
>      mirrored in phantom windows.
> TEST=ARC apps are mirrored in Alt+Tab previews.
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
>
> Review-Url: https://codereview.chromium.org/2383263002
> Cr-Commit-Position: refs/heads/master@{#427891}
> (cherry picked from commit 4b33bfeda856f7ae20ffa43176e5bd529d5a100a)
>
> Committed: https://chromium.googlesource.com/chromium/src/+/497b50fc19904a059de566474ff099519a4c881a

TBR=danakj@chromium.org,oshima@chromium.org,reveman@chromium.org,sadrul@chromium.org,sky@chromium.org,domlaskowski@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 642894 

Review-Url: https://codereview.chromium.org/2458833003
Cr-Commit-Position: refs/branch-heads/2883@{#346}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/BUILD.gn
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/aura/wm_window_aura.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/common/wm/window_cycle_list.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/rotator/screen_rotation_animator.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/wm/window_mirror_view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/wm/window_mirror_view.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/cc/layers/surface_layer.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/chrome/browser/ui/views/frame/contents_web_view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/components/exo/surface.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/components/exo/surface.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/components/exo/surface_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/arc/notification/arc_custom_notification_view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/aura/window.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_observer.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner_delegate.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_tree_owner.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_tree_owner.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/views/view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/views/view_unittest_aura.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_animations.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_util.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_util.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_util_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/497b50fc19904a059de566474ff099519a4c881a

commit 497b50fc19904a059de566474ff099519a4c881a
Author: Luis Hector Chavez <lhchavez@google.com>
Date: Thu Oct 27 21:11:39 2016

[M55] Generalize layer mirroring for phantom windows

Previously, the layers of a phantom window were recreated when the
surface changed in the corresponding layers of the original window.
The code also assumed that layers with surfaces are leaves in the
layer tree, but Exosphere surfaces are nested. Recursive layer
cloning would be inefficient for surfaces changing in each frame,
so this CL adds an alternative way to mirror layers. In addition,
the bounds of Exosphere surfaces relative to their parent window
are updated whenever the window moves, so this CL provides a way
to synchronize relative positions of layers in phantom windows.

In addition to implementing phantom windows for ARC apps, this CL
fixes three bugs related to mirroring:

  1) Memory corruption due to the non-recursive layer cloning.
  2) Dangling pointers due to observers sticking around.
  3) Black Alt+Tab previews for ARC windows.

R=lhchavez@chromium.org
TBR=danakj@chromium.org, oshima@chromium.org, reveman@chromium.org, sadrul@chromium.org, sky@chromium.org
BUG= 642894 
BUG=649452
BUG= 653113 
TEST=ARC apps that render continuously (e.g. games, video players)
     can be dragged to external displays, and their content is
     mirrored in phantom windows.
TEST=ARC apps are mirrored in Alt+Tab previews.
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://codereview.chromium.org/2383263002
Cr-Commit-Position: refs/heads/master@{#427891}
(cherry picked from commit 4b33bfeda856f7ae20ffa43176e5bd529d5a100a)

Review URL: https://codereview.chromium.org/2459653003 .

Cr-Commit-Position: refs/branch-heads/2883@{#345}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/BUILD.gn
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/aura/wm_window_aura.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/common/wm/window_cycle_list.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/rotator/screen_rotation_animator.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/wm/window_mirror_view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ash/wm/window_mirror_view.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/cc/layers/surface_layer.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/chrome/browser/ui/views/frame/contents_web_view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/components/exo/surface.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/components/exo/surface.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/components/exo/surface_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/arc/notification/arc_custom_notification_view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/aura/window.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_observer.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner_delegate.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_tree_owner.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_tree_owner.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/compositor/layer_unittest.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/views/view.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/views/view_unittest_aura.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_animations.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_util.cc
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_util.h
[modify] https://crrev.com/497b50fc19904a059de566474ff099519a4c881a/ui/wm/core/window_util_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 27 2016

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

commit 1d94ce480b3688a564ca4e7ff57cc93191d95743
Author: lhchavez <lhchavez@chromium.org>
Date: Thu Oct 27 21:55:00 2016

Revert of [M55] Generalize layer mirroring for phantom windows (patchset #1 id:1 of https://codereview.chromium.org/2459653003/ )

Reason for revert:
This broke Windows build: https://bugs.chromium.org/p/chromium/issues/detail?id=660183

Original issue's description:
> [M55] Generalize layer mirroring for phantom windows
>
> Previously, the layers of a phantom window were recreated when the
> surface changed in the corresponding layers of the original window.
> The code also assumed that layers with surfaces are leaves in the
> layer tree, but Exosphere surfaces are nested. Recursive layer
> cloning would be inefficient for surfaces changing in each frame,
> so this CL adds an alternative way to mirror layers. In addition,
> the bounds of Exosphere surfaces relative to their parent window
> are updated whenever the window moves, so this CL provides a way
> to synchronize relative positions of layers in phantom windows.
>
> In addition to implementing phantom windows for ARC apps, this CL
> fixes three bugs related to mirroring:
>
>   1) Memory corruption due to the non-recursive layer cloning.
>   2) Dangling pointers due to observers sticking around.
>   3) Black Alt+Tab previews for ARC windows.
>
> R=lhchavez@chromium.org
> TBR=danakj@chromium.org, oshima@chromium.org, reveman@chromium.org, sadrul@chromium.org, sky@chromium.org
> BUG= 642894 
> BUG=649452
> BUG= 653113 
> TEST=ARC apps that render continuously (e.g. games, video players)
>      can be dragged to external displays, and their content is
>      mirrored in phantom windows.
> TEST=ARC apps are mirrored in Alt+Tab previews.
> CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
>
> Review-Url: https://codereview.chromium.org/2383263002
> Cr-Commit-Position: refs/heads/master@{#427891}
> (cherry picked from commit 4b33bfeda856f7ae20ffa43176e5bd529d5a100a)
>
> Committed: https://chromium.googlesource.com/chromium/src/+/497b50fc19904a059de566474ff099519a4c881a

TBR=danakj@chromium.org,oshima@chromium.org,reveman@chromium.org,sadrul@chromium.org,sky@chromium.org,domlaskowski@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 642894 

Review-Url: https://codereview.chromium.org/2458833003
Cr-Commit-Position: refs/branch-heads/2883@{#346}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/BUILD.gn
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/aura/wm_window_aura.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/common/wm/window_cycle_list.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/rotator/screen_rotation_animator.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/wm/window_mirror_view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ash/wm/window_mirror_view.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/cc/layers/surface_layer.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/chrome/browser/ui/views/frame/contents_web_view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/components/exo/surface.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/components/exo/surface.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/components/exo/surface_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/arc/notification/arc_custom_notification_view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/aura/window.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_observer.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner_delegate.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_tree_owner.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_tree_owner.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/compositor/layer_unittest.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/views/view.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/views/view_unittest_aura.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_animations.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_util.cc
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_util.h
[modify] https://crrev.com/1d94ce480b3688a564ca4e7ff57cc93191d95743/ui/wm/core/window_util_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 28 2016

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

commit cc5903023a09b0560e4041daa109c7b5431f7cb4
Author: Mitsuru Oshima <oshima@chromium.org>
Date: Fri Oct 28 21:55:07 2016

[M55] Generalize layer mirroring for phantom windows

Previously, the layers of a phantom window were recreated when the
surface changed in the corresponding layers of the original window.
The code also assumed that layers with surfaces are leaves in the
layer tree, but Exosphere surfaces are nested. Recursive layer
cloning would be inefficient for surfaces changing in each frame,
so this CL adds an alternative way to mirror layers. In addition,
the bounds of Exosphere surfaces relative to their parent window
are updated whenever the window moves, so this CL provides a way
to synchronize relative positions of layers in phantom windows.

In addition to implementing phantom windows for ARC apps, this CL
fixes three bugs related to mirroring:

  1) Memory corruption due to the non-recursive layer cloning.
  2) Dangling pointers due to observers sticking around.
  3) Black Alt+Tab previews for ARC windows.

BUG= 642894 
BUG=649452
BUG= 653113 
TEST=ARC apps that render continuously (e.g. games, video players)
     can be dragged to external displays, and their content is
     mirrored in phantom windows.
TEST=ARC apps are mirrored in Alt+Tab previews.

Review-Url: https://codereview.chromium.org/2383263002
Cr-Commit-Position: refs/heads/master@{#427891}
(cherry picked from commit 4b33bfeda856f7ae20ffa43176e5bd529d5a100a)
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
R=oshima@chromium.org, sky@chromium.org

Review URL: https://codereview.chromium.org/2457163003 .

Cr-Commit-Position: refs/branch-heads/2883@{#364}
Cr-Branched-From: 614d31daee2f61b0180df403a8ad43f20b9f6dd7-refs/heads/master@{#423768}

[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/BUILD.gn
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/aura/wm_window_aura.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/common/wm/window_cycle_list.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/rotator/screen_rotation_animator.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/utility/screenshot_controller.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/wm/drag_window_controller.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/wm/window_mirror_view.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ash/wm/window_mirror_view.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/cc/layers/surface_layer.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/chrome/browser/ui/views/frame/contents_web_view.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/components/exo/surface.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/components/exo/surface.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/components/exo/surface_unittest.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/content/browser/renderer_host/render_widget_host_view_aura.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/arc/notification/arc_custom_notification_view.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/aura/window.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_observer.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_owner.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_owner.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_owner_delegate.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_owner_unittest.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_tree_owner.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_tree_owner.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/compositor/layer_unittest.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/views/cocoa/bridged_native_widget.mm
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/views/view.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/views/view_unittest_aura.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/wm/core/window_animations.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/wm/core/window_util.cc
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/wm/core/window_util.h
[modify] https://crrev.com/cc5903023a09b0560e4041daa109c7b5431f7cb4/ui/wm/core/window_util_unittest.cc

Cc: domlasko...@chromium.org
 Issue 628589  has been merged into this issue.

Comment 9 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840
 Issue 667336  has been merged into this issue.
Can we get any timeline on when this will be going into dev channel for dell 13 Chromebooks?  
Cc: gbirtchnell@chromium.org
Labels: Hotlist-Enterprise
@domlaskowski, when do we expect to see this to be merged?
Still nothing seen in 56.0.2942.28.
Hi team,

Do we have an update on this bug?

Thanks!
Please provide an update to this as we are getting more users that will be using Chromebooks with the play store installed....  Most of which use dual monitors.
Multi-display support will land in a release based on Android N. The M implementation is usable but lacks certain features, e.g. maximizing and full screen. Development is on hiatus because N requires a major design change, and maintaining an incompatible implementation doesn't make sense as it will soon be obsolete.

The N implementation is blocked by the migration to HWC2. I'm currently tied up helping out with HWC2 porting, but will resume this work ASAP.
Project Member

Comment 16 by bugdroid1@chromium.org, Jan 26 2017

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

commit f79ede40658ecab4a6c72b6e51c456d68dab2ad0
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jan 26 01:24:37 2017

exo: Fix cursor size for multi-display ARC

When a low-DPI monitor is connected to a high-DPI device, the cursor in
ARC windows appears twice as large if:

  1) The primary display is the external display, unless the internal
     display uses native resolution and the window is on the internal
     display. This includes docked mode.

  2) The primary display is the internal display, the internal display
     uses native resolution, and the window is on the external display.

BUG= 684672 
BUG= 642894 
TEST=samus: Cursor size is correct in the above cases.

Review-Url: https://codereview.chromium.org/2645273005
Cr-Commit-Position: refs/heads/master@{#446192}

[modify] https://crrev.com/f79ede40658ecab4a6c72b6e51c456d68dab2ad0/components/exo/pointer.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Jan 26 2017

Labels: merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7c15664f05e4ad7bd99a426fa54eee096e6e777b

commit 7c15664f05e4ad7bd99a426fa54eee096e6e777b
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jan 26 18:05:47 2017

[M57] exo: Fix cursor size for multi-display ARC

When a low-DPI monitor is connected to a high-DPI device, the cursor in
ARC windows appears twice as large if:

  1) The primary display is the external display, unless the internal
     display uses native resolution and the window is on the internal
     display. This includes docked mode.

  2) The primary display is the internal display, the internal display
     uses native resolution, and the window is on the external display.

TBR=reveman@chromium.org
NOTRY=true
NOPRESUBMIT=true
BUG= 684672 
BUG= 642894 
TEST=samus: Cursor size is correct in the above cases.

Review-Url: https://codereview.chromium.org/2645273005
Cr-Commit-Position: refs/heads/master@{#446192}
(cherry picked from commit f79ede40658ecab4a6c72b6e51c456d68dab2ad0)

Review-Url: https://codereview.chromium.org/2657673005
Cr-Commit-Position: refs/branch-heads/2987@{#110}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/7c15664f05e4ad7bd99a426fa54eee096e6e777b/components/exo/pointer.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Jan 26 2017

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

commit 7c15664f05e4ad7bd99a426fa54eee096e6e777b
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jan 26 18:05:47 2017

[M57] exo: Fix cursor size for multi-display ARC

When a low-DPI monitor is connected to a high-DPI device, the cursor in
ARC windows appears twice as large if:

  1) The primary display is the external display, unless the internal
     display uses native resolution and the window is on the internal
     display. This includes docked mode.

  2) The primary display is the internal display, the internal display
     uses native resolution, and the window is on the external display.

TBR=reveman@chromium.org
NOTRY=true
NOPRESUBMIT=true
BUG= 684672 
BUG= 642894 
TEST=samus: Cursor size is correct in the above cases.

Review-Url: https://codereview.chromium.org/2645273005
Cr-Commit-Position: refs/heads/master@{#446192}
(cherry picked from commit f79ede40658ecab4a6c72b6e51c456d68dab2ad0)

Review-Url: https://codereview.chromium.org/2657673005
Cr-Commit-Position: refs/branch-heads/2987@{#110}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/7c15664f05e4ad7bd99a426fa54eee096e6e777b/components/exo/pointer.cc

Cc: elijahtaylor@chromium.org abodenha@chromium.org
 Issue 685290  has been merged into this issue.
Project Member

Comment 20 by bugdroid1@chromium.org, Feb 1 2017

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

commit e44a9c858468ba0cbd00643bd7d61ae4eda2285b
Author: domlaskowski <domlaskowski@chromium.org>
Date: Wed Feb 01 20:06:12 2017

third_party: Amend version 2 of remote shell protocol

The "configure" event and "ack_configure" request enable the compositor
to synchronize window positions across display configuration changes.
In extended desktop mode, this prevents a race that causes windows to
briefly appear at an incorrect location when a display is connected or
disconnected.

BUG= 642894 
TEST=None

Review-Url: https://codereview.chromium.org/2666953004
Cr-Commit-Position: refs/heads/master@{#447587}

[modify] https://crrev.com/e44a9c858468ba0cbd00643bd7d61ae4eda2285b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h
[modify] https://crrev.com/e44a9c858468ba0cbd00643bd7d61ae4eda2285b/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
[modify] https://crrev.com/e44a9c858468ba0cbd00643bd7d61ae4eda2285b/third_party/wayland-protocols/protocol/remote-shell-protocol.c
[modify] https://crrev.com/e44a9c858468ba0cbd00643bd7d61ae4eda2285b/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml

 Issue 687655  has been merged into this issue.
Project Member

Comment 22 by bugdroid1@chromium.org, Feb 15 2017

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

commit 886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180
Author: domlaskowski <domlaskowski@chromium.org>
Date: Wed Feb 15 01:08:04 2017

exo: Refactor ShellSurface and WaylandRemoteShell

The gfx::Size part of ShellSurface::initial_bounds_ was abused to tell
shell surface types apart, i.e. their behavior implicitly depended on
otherwise unused initial state, e.g. gfx::Size(1, 1). This CL replaces
initial_bounds_ with an origin_ and explicit state that determines how
shell surface bounds are controlled.

This CL also includes miscellaneous style cleanups.

BUG= 642894 
TEST=None

Review-Url: https://codereview.chromium.org/2688483003
Cr-Commit-Position: refs/heads/master@{#450533}

[modify] https://crrev.com/886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180/components/exo/display.cc
[modify] https://crrev.com/886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180/components/exo/pointer_unittest.cc
[modify] https://crrev.com/886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180/components/exo/shell_surface.cc
[modify] https://crrev.com/886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180/components/exo/shell_surface.h
[modify] https://crrev.com/886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180/components/exo/shell_surface_unittest.cc
[modify] https://crrev.com/886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180/components/exo/test/exo_test_helper.cc
[modify] https://crrev.com/886e1c8ecc4e7cfdf003f9dddbc0f0f05b8b9180/components/exo/wayland/server.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Feb 15 2017

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

commit 650201c6a66c743754533d723a2dbeab9414d9cb
Author: domlaskowski <domlaskowski@chromium.org>
Date: Wed Feb 15 23:35:09 2017

third_party: Amend version 3 of remote shell protocol

Instead of toggling the server-side dragging state in response
to client requests, the compositor will detect conditions that
initiate/abort dragging, and instruct the client to transition
in/out of a new "moving" window state. As a prerequisite, the
compositor must synchronize window state transitions with the
client. This is also needed to prevent racy geometry updates,
notably when entering immersive mode while dragging.

BUG= 642894 
TEST=None

Review-Url: https://codereview.chromium.org/2684073003
Cr-Commit-Position: refs/heads/master@{#450834}

[modify] https://crrev.com/650201c6a66c743754533d723a2dbeab9414d9cb/components/exo/wayland/server.cc
[modify] https://crrev.com/650201c6a66c743754533d723a2dbeab9414d9cb/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h
[modify] https://crrev.com/650201c6a66c743754533d723a2dbeab9414d9cb/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
[modify] https://crrev.com/650201c6a66c743754533d723a2dbeab9414d9cb/third_party/wayland-protocols/protocol/remote-shell-protocol.c
[modify] https://crrev.com/650201c6a66c743754533d723a2dbeab9414d9cb/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml

Project Member

Comment 24 by bugdroid1@chromium.org, Feb 24 2017

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

commit 908ff1bf9511fe0a66bea48737a898ca71c81440
Author: domlaskowski <domlaskowski@chromium.org>
Date: Fri Feb 24 21:07:43 2017

exo: Synchronize multi-display window positioning

This CL enables the compositor to synchronize window positions across
display configuration changes when bounds are controlled by the client.
In that case, the client uses screen coordinates for geometry updates,
and acknowledges when the compositor changes the origin of the screen
coordinate system. The compositor compensates for in-flight geometry
updates until it receives the acknowledgement, at which point it
switches to the new coordinate system.

For ARC in extended desktop mode, this prevents a race that causes
windows to briefly appear at an incorrect location when a display is
connected or disconnected.

Note that ShellSurface::SetOrigin will be used in a follow-up CL to
implement support for multiple displays in ARC.

BUG= 642894 
TEST=samus: Window positions are updated atomically when changing the
     display configuration, e.g. closing the lid to enter docked mode.

Review-Url: https://codereview.chromium.org/2706543002
Cr-Commit-Position: refs/heads/master@{#452913}

[modify] https://crrev.com/908ff1bf9511fe0a66bea48737a898ca71c81440/components/exo/display.cc
[modify] https://crrev.com/908ff1bf9511fe0a66bea48737a898ca71c81440/components/exo/display.h
[modify] https://crrev.com/908ff1bf9511fe0a66bea48737a898ca71c81440/components/exo/display_unittest.cc
[modify] https://crrev.com/908ff1bf9511fe0a66bea48737a898ca71c81440/components/exo/shell_surface.cc
[modify] https://crrev.com/908ff1bf9511fe0a66bea48737a898ca71c81440/components/exo/shell_surface.h
[modify] https://crrev.com/908ff1bf9511fe0a66bea48737a898ca71c81440/components/exo/shell_surface_unittest.cc
[modify] https://crrev.com/908ff1bf9511fe0a66bea48737a898ca71c81440/components/exo/wayland/server.cc

As mentioned in #15 "Multi-display support will land in a release based on Android N". I know it is a very long shot but do we have any ETA on when Android N will be landing Chrome OS?

Thanks

Comment 26 Deleted

Project Member

Comment 28 by bugdroid1@chromium.org, Mar 15 2017

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

commit 623c02906151795123d5b40dfa3b931f98a916cc
Author: domlaskowski <domlaskowski@chromium.org>
Date: Wed Mar 15 22:59:37 2017

exo: Initial support for multiple displays in ARC

This CL adds the ability to drag ARC windows to external displays,
which is achieved by mapping window positions from a single virtual
display in ARC to multiple physical displays in Chrome OS. The new
version of the Wayland protocol enables the ARC window manager to
perform window layout on multiple workspaces, which are mapped to
server-side displays. The compositor also handles events from ARC
to differentiate between dragging and other geometry updates. This
enables it to render phantom windows during dragging, and transfer
the window to the target root window when the drag ends.

BUG= 642894 
TEST=samus,minnie: ARC apps can be dragged to external displays using
     different display settings, e.g. resolution, layout, orientation.

Review-Url: https://codereview.chromium.org/2645663004
Cr-Commit-Position: refs/heads/master@{#457249}

[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/display.cc
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/display.h
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/display_unittest.cc
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/shell_surface.cc
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/shell_surface.h
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/shell_surface_unittest.cc
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/wayland/server.cc
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/wm_helper.cc
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/wm_helper.h
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/wm_helper_ash.cc
[modify] https://crrev.com/623c02906151795123d5b40dfa3b931f98a916cc/components/exo/wm_helper_ash.h

Project Member

Comment 29 by bugdroid1@chromium.org, Mar 16 2017

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

commit 5f68bcb19b832bb425469aa7e1a362e9a0326181
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Mar 16 23:03:58 2017

exo: Clean up display configuration protocol

The fact that the client only uses the transform and scale factor of the
primary display is an implementation detail, so the protocol was changed
to include this information for each display. The new protocol also does
away with the primary display ID, which can be deduced using the display
bounds now that screen coordinates are used.

BUG= 642894 
TEST=None

Review-Url: https://codereview.chromium.org/2751653009
Cr-Commit-Position: refs/heads/master@{#457595}

[modify] https://crrev.com/5f68bcb19b832bb425469aa7e1a362e9a0326181/components/exo/wayland/server.cc
[modify] https://crrev.com/5f68bcb19b832bb425469aa7e1a362e9a0326181/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h
[modify] https://crrev.com/5f68bcb19b832bb425469aa7e1a362e9a0326181/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
[modify] https://crrev.com/5f68bcb19b832bb425469aa7e1a362e9a0326181/third_party/wayland-protocols/protocol/remote-shell-protocol.c
[modify] https://crrev.com/5f68bcb19b832bb425469aa7e1a362e9a0326181/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 31 2017

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

commit fcec89d6f03db12e55e42db9d5bfc9a0d7edbc99
Author: domlaskowski <domlaskowski@chromium.org>
Date: Fri Mar 31 04:17:13 2017

exo: Clean up cursor code

This CL fixes an omission in WMHelper observer registration, as well as
an incorrect DCHECK on aura::client::GetCursorClient. It also cleans up
repetitive null checks and typos.

BUG= 642894 
TEST=None

Review-Url: https://codereview.chromium.org/2778913002
Cr-Commit-Position: refs/heads/master@{#461023}

[modify] https://crrev.com/fcec89d6f03db12e55e42db9d5bfc9a0d7edbc99/components/exo/pointer.cc
[modify] https://crrev.com/fcec89d6f03db12e55e42db9d5bfc9a0d7edbc99/components/exo/shell_surface.cc
[modify] https://crrev.com/fcec89d6f03db12e55e42db9d5bfc9a0d7edbc99/components/exo/wm_helper_ash.cc
[modify] https://crrev.com/fcec89d6f03db12e55e42db9d5bfc9a0d7edbc99/components/exo/wm_helper_ash.h
[modify] https://crrev.com/fcec89d6f03db12e55e42db9d5bfc9a0d7edbc99/components/exo/wm_helper_mus.h

Project Member

Comment 31 by bugdroid1@chromium.org, Jun 1 2017

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

commit ba20af04ad131e2fc7b8fd4142cffd7461057d5b
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 01 18:12:15 2017

exo: Fix multi-display hardware cursor

This CL fixes crashes in extended desktop mode caused by incorrect
parenting of the cursor surface, as well as cases where the cursor
was captured with an incorrect transform or hotspot:

  1) The mouse enters a display with a different DSF or UI scale.
  2) The internal display is not the primary display.
  3) The display is rotated.

It also adds a TODO for an accessibility regression.

BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor parenting and scaling is correct for each display.
TEST=caroline: Cursor on rotated displays has correct orientation.

Review-Url: https://codereview.chromium.org/2780623002
Cr-Commit-Position: refs/heads/master@{#476353}

[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/pointer.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/pointer.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/shell_surface.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_ash.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_ash.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_mus.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/components/exo/wm_helper_mus.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/client/cursor_client.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/client/cursor_client_observer.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/test/test_cursor_client.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/aura/test/test_cursor_client.h
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/wm/core/cursor_manager.cc
[modify] https://crrev.com/ba20af04ad131e2fc7b8fd4142cffd7461057d5b/ui/wm/core/cursor_manager.h

Project Member

Comment 32 by bugdroid1@chromium.org, Jun 1 2017

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

commit fa6afade49688205eb70ba3329a23c91080cf53a
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 01 19:00:35 2017

exo: Fix cursor scale when crossing displays

While dragging, the cursor was locked, so CursorClient::SetCursor calls
were collapsed into a single call at the end of the drag. When crossing
displays with different densities, the cursor scale was incorrect until
the window was dropped. This CL removes cursor locking to prevent the
OnCursorDisplayChanged update from being postponed.

BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor scale is correct while dragging across displays.

Review-Url: https://codereview.chromium.org/2812663002
Cr-Commit-Position: refs/heads/master@{#476375}

[modify] https://crrev.com/fa6afade49688205eb70ba3329a23c91080cf53a/components/exo/shell_surface.cc

Labels: Merge-Request-60
Requesting M60 merge for #31 to #33.
Project Member

Comment 35 by sheriffbot@chromium.org, Jun 5 2017

Labels: -Merge-Request-60 Hotlist-Merge-Review Merge-Review-60
This bug requires manual review: Reverts referenced in bugdroid comments after merge request.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), josafat@(ChromeOS), bustamante@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: josa...@chromium.org
Labels: M-60
Cc: -gbirtchnell@chromium.org
Labels: -Merge-Review-60 Merge-Approved-60
Project Member

Comment 39 by bugdroid1@chromium.org, Jun 8 2017

Labels: -merge-approved-60 merge-merged-3112
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e0a90e7641fe7a24179747861292ef199dae85e5

commit e0a90e7641fe7a24179747861292ef199dae85e5
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 08 20:38:20 2017

[M60] exo: Fix multi-display hardware cursor

This CL fixes crashes in extended desktop mode caused by incorrect
parenting of the cursor surface, as well as cases where the cursor
was captured with an incorrect transform or hotspot:

  1) The mouse enters a display with a different DSF or UI scale.
  2) The internal display is not the primary display.
  3) The display is rotated.

It also adds a TODO for an accessibility regression.

TBR=reveman@chromium.org
NOTRY=true
NOPRESUBMIT=true
BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor parenting and scaling is correct for each display.
TEST=caroline: Cursor on rotated displays has correct orientation.

Review-Url: https://codereview.chromium.org/2780623002
Cr-Original-Commit-Position: refs/heads/master@{#476353}
Review-Url: https://codereview.chromium.org/2924873008
Cr-Commit-Position: refs/branch-heads/3112@{#263}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/chrome/browser/chromeos/arc/accessibility/arc_accessibility_helper_bridge_unittest.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/pointer.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/pointer.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/shell_surface.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_ash.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_ash.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_mus.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/components/exo/wm_helper_mus.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/client/cursor_client.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/client/cursor_client_observer.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/test/test_cursor_client.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/aura/test/test_cursor_client.h
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/wm/core/cursor_manager.cc
[modify] https://crrev.com/e0a90e7641fe7a24179747861292ef199dae85e5/ui/wm/core/cursor_manager.h

Project Member

Comment 40 by bugdroid1@chromium.org, Jun 8 2017

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

commit f9f0ccb6c9db27cea6caca0c6e7e323e0994e710
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 08 20:46:40 2017

[M60] exo: Fix cursor scale when crossing displays

While dragging, the cursor was locked, so CursorClient::SetCursor calls
were collapsed into a single call at the end of the drag. When crossing
displays with different densities, the cursor scale was incorrect until
the window was dropped. This CL removes cursor locking to prevent the
OnCursorDisplayChanged update from being postponed.

TBR=reveman@chromium.org
NOTRY=true
NOPRESUBMIT=true
BUG= 631136 
BUG= 642894 
TEST=caroline: Cursor scale is correct while dragging across displays.

Review-Url: https://codereview.chromium.org/2812663002
Cr-Original-Commit-Position: refs/heads/master@{#476375}
Review-Url: https://codereview.chromium.org/2931963002
Cr-Commit-Position: refs/branch-heads/3112@{#265}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/f9f0ccb6c9db27cea6caca0c6e7e323e0994e710/components/exo/shell_surface.cc

Project Member

Comment 41 by bugdroid1@chromium.org, Jun 8 2017

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

commit 93dbb873288016afde40cd102c58b734071ea8da
Author: domlaskowski <domlaskowski@chromium.org>
Date: Thu Jun 08 20:52:00 2017

[M60] exo: Send DSF of internal display to ARC

Since the client-side DPI in ARC is configured at build time based on
the internal display, the client must scale the cursor by the DSF of
the internal (not the primary) display to convert from pixels to DIPs.

TBR=reveman@chromium.org
NOTRY=true
NOPRESUBMIT=true
BUG= 642894 
TEST=caroline: Cursor scale is correct for each display/resolution.

Review-Url: https://codereview.chromium.org/2779823002
Cr-Original-Commit-Position: refs/heads/master@{#476423}
Review-Url: https://codereview.chromium.org/2924173003
Cr-Commit-Position: refs/branch-heads/3112@{#266}
Cr-Branched-From: b6460e24cf59f429d69de255538d0fc7a425ccf9-refs/heads/master@{#474897}

[modify] https://crrev.com/93dbb873288016afde40cd102c58b734071ea8da/components/exo/wayland/server.cc
[modify] https://crrev.com/93dbb873288016afde40cd102c58b734071ea8da/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-client-protocol.h
[modify] https://crrev.com/93dbb873288016afde40cd102c58b734071ea8da/third_party/wayland-protocols/include/protocol/remote-shell-unstable-v1-server-protocol.h
[modify] https://crrev.com/93dbb873288016afde40cd102c58b734071ea8da/third_party/wayland-protocols/protocol/remote-shell-protocol.c
[modify] https://crrev.com/93dbb873288016afde40cd102c58b734071ea8da/third_party/wayland-protocols/unstable/remote-shell/remote-shell-unstable-v1.xml

Status: Fixed (was: Started)
Multi-display support landed in M60. M62 will bring multi-display aware launching of ARC apps, as well as developer APIs, i.e. DisplayManager and ActivityOptions.setLaunchDisplayId backported from Android O.

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

Status: Archived (was: Fixed)

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

Status: Fixed (was: Archived)

Sign in to add a comment