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

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

Created:
4 years, 1 month ago by Dominik Laskowski
Modified:
4 years, 1 month ago
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. 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

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+417 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 +118 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: 6 (2 generated)
Dominik Laskowski
4 years, 1 month ago (2016-10-27 21:08:11 UTC) #1
Luis Héctor Chávez
lgtm Merging based on approval from bhthompson@ on https://crbug.com/653113#c16
4 years, 1 month ago (2016-10-27 21:09:14 UTC) #3
Luis Héctor Chávez
Committed patchset #1 (id:1) manually as 497b50fc19904a059de566474ff099519a4c881a (presubmit successful).
4 years, 1 month ago (2016-10-27 21:16:12 UTC) #5
Luis Héctor Chávez
4 years, 1 month ago (2016-10-27 21:51:16 UTC) #6
Message was sent while issue was closed.
A revert of this CL (patchset #1 id:1) has been created in
https://codereview.chromium.org/2458833003/ by lhchavez@chromium.org.

The reason for reverting is: This broke Windows build:
https://bugs.chromium.org/p/chromium/issues/detail?id=660183.

Powered by Google App Engine
This is Rietveld 408576698