Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Issue 2457163003: [M55] Generalize layer mirroring for phantom windows (Closed)

Created:
4 years, 1 month ago by Dominik Laskowski
Modified:
4 years, 1 month ago
Reviewers:
danakj, reveman, oshima, sky, sadrul
CC:
chromium-reviews, elijahtaylor+arcwatch_chromium.org, lhchavez+watch_chromium.org, sadrul, yusukes+watch_chromium.org, Ian Vollick, tfarina, hidehiko+watch_chromium.org, jam, dcheng, sievers+watch_chromium.org, jbauman+watch_chromium.org, nona+watch_chromium.org, darin-cc_chromium.org, shuchen+watch_chromium.org, piman+watch_chromium.org, kalyank, cc-bugs_chromium.org, James Su, danakj+watch_chromium.org
Target Ref:
refs/pending/branch-heads/2883
Project:
chromium
Visibility:
Public.

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. 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

Patch Set 1 #

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

Messages

Total messages: 7 (3 generated)
Dominik Laskowski
PTAL. The only change is the addition of a PrepareForLayerBoundsChange override in Layer::LayerMirror, which is ...
4 years, 1 month ago (2016-10-28 21:00:59 UTC) #3
oshima
lgtm
4 years, 1 month ago (2016-10-28 21:26:46 UTC) #4
sky
LGTM - in the future please upload your original patch as the first, and any ...
4 years, 1 month ago (2016-10-28 21:35:00 UTC) #5
oshima
4 years, 1 month ago (2016-10-28 21:59:10 UTC) #7
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
cc5903023a09b0560e4041daa109c7b5431f7cb4.

Powered by Google App Engine
This is Rietveld 408576698