|
|
[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
Committed: https://chromium.googlesource.com/chromium/src/+/cc5903023a09b0560e4041daa109c7b5431f7cb4
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+420 lines, -413 lines) |
Patch |
 |
M |
ash/BUILD.gn
|
View
|
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
 |
M |
ash/aura/wm_window_aura.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ash/common/wm/window_cycle_list.cc
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
ash/rotator/screen_rotation_animator.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ash/utility/screenshot_controller.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ash/wm/drag_window_controller.cc
|
View
|
|
5 chunks |
+2 lines, -19 lines |
0 comments
|
Download
|
 |
M |
ash/wm/window_mirror_view.h
|
View
|
|
4 chunks |
+6 lines, -14 lines |
0 comments
|
Download
|
 |
M |
ash/wm/window_mirror_view.cc
|
View
|
|
3 chunks |
+3 lines, -12 lines |
0 comments
|
Download
|
 |
M |
cc/layers/surface_layer.h
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/ash/multi_user/user_switch_animator_chromeos.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
chrome/browser/ui/views/frame/contents_web_view.cc
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
M |
components/exo/surface.h
|
View
|
|
3 chunks |
+1 line, -6 lines |
0 comments
|
Download
|
 |
M |
components/exo/surface.cc
|
View
|
|
4 chunks |
+5 lines, -28 lines |
0 comments
|
Download
|
 |
M |
components/exo/surface_unittest.cc
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/delegated_frame_host.h
|
View
|
|
3 chunks |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/delegated_frame_host.cc
|
View
|
|
1 chunk |
+0 lines, -20 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_aura.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_aura.cc
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
|
View
|
|
2 chunks |
+13 lines, -7 lines |
0 comments
|
Download
|
 |
M |
ui/arc/notification/arc_custom_notification_view.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ui/aura/window.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ui/compositor/layer.h
|
View
|
|
5 chunks |
+19 lines, -1 line |
0 comments
|
Download
|
 |
M |
ui/compositor/layer.cc
|
View
|
|
16 chunks |
+121 lines, -15 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_observer.h
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_owner.h
|
View
|
|
2 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_owner.cc
|
View
|
|
3 chunks |
+10 lines, -27 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_owner_delegate.h
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_owner_unittest.cc
|
View
|
|
5 chunks |
+10 lines, -108 lines |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_tree_owner.h
|
View
|
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_tree_owner.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
ui/compositor/layer_unittest.cc
|
View
|
|
2 chunks |
+160 lines, -0 lines |
0 comments
|
Download
|
 |
M |
ui/views/cocoa/bridged_native_widget.mm
|
View
|
|
2 chunks |
+2 lines, -1 line |
0 comments
|
Download
|
 |
M |
ui/views/view.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ui/views/view_unittest_aura.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ui/wm/core/window_animations.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
ui/wm/core/window_util.h
|
View
|
|
2 chunks |
+7 lines, -18 lines |
0 comments
|
Download
|
 |
M |
ui/wm/core/window_util.cc
|
View
|
|
4 chunks |
+29 lines, -19 lines |
0 comments
|
Download
|
 |
M |
ui/wm/core/window_util_unittest.cc
|
View
|
|
3 chunks |
+1 line, -86 lines |
0 comments
|
Download
|
Total messages: 7 (3 generated)
|