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

Issue 2414683003: Mus+Ash: propagate Surface ID to parents (Closed)

Created:
4 years, 2 months ago by Fady Samuel
Modified:
4 years, 2 months ago
CC:
Aaron Boodman, abarth-chromium, chromium-reviews, darin (slow to review), qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Mus+Ash: propagate Surface ID to parents Currently, in Mus+Ash, the window server is responsible for positioning windows and generating SurfaceDrawQuads for them. This CL propagates surface IDs for child windows to their parents so that parents can embed them directly via CompositorFrames. This will happen in a subsequent patch. A SurfaceSequence is allocated for the surface ID that is propagated up the window hierarchy. As long as the parent holds on to the SurfaceSequence, then the surface ID will be preserved. Once the parent is informed of a new surface ID then it will return the SurfaceSequence back to the window server for reclamation (mus-gpu in the future). If a window is destroyed then it will also return its SurfaceSequence. BUG=647852 Committed: https://crrev.com/065bde79d4e511f613ae89a2fc535029dae26100 Committed: https://crrev.com/433690106161ad7467d59901c469762f160fa4a2 Cr-Original-Commit-Position: refs/heads/master@{#425556} Cr-Commit-Position: refs/heads/master@{#425566}

Patch Set 1 #

Patch Set 2 : Add missing file #

Total comments: 2

Patch Set 3 : Added TODO #

Total comments: 2

Patch Set 4 : Introduced SurfaceIdHandler #

Patch Set 5 : Remove WindowObserver::OnChildWindowSurfaceCreated #

Patch Set 6 : Removed stale comment #

Total comments: 8

Patch Set 7 : Addressed sky's comments + added unit test #

Patch Set 8 : updated comment #

Total comments: 6

Patch Set 9 : ReturnSurfaceReference => OnWindowSurfaceDetached #

Patch Set 10 : Addressed sky's comments #

Total comments: 4

Patch Set 11 : Addressed Scott's comments #

Patch Set 12 : Don't follow null surface_info #

Unified diffs Side-by-side diffs Delta from patch set Stats (+399 lines, -14 lines) Patch
M services/ui/public/cpp/BUILD.gn View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
A services/ui/public/cpp/surface_id_handler.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +44 lines, -0 lines 0 comments Download
M services/ui/public/cpp/tests/test_window_tree.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M services/ui/public/cpp/tests/test_window_tree.cc View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M services/ui/public/cpp/window.h View 1 2 3 4 5 6 7 8 9 6 chunks +10 lines, -0 lines 0 comments Download
M services/ui/public/cpp/window.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +27 lines, -0 lines 0 comments Download
M services/ui/public/cpp/window_private.h View 1 2 3 4 5 6 7 8 9 2 chunks +5 lines, -0 lines 0 comments Download
M services/ui/public/cpp/window_tree_client.h View 1 2 3 4 5 6 7 8 9 2 chunks +8 lines, -0 lines 0 comments Download
M services/ui/public/cpp/window_tree_client.cc View 1 2 3 4 5 6 7 8 9 3 chunks +25 lines, -0 lines 0 comments Download
M services/ui/public/interfaces/window_tree.mojom View 1 2 3 4 5 6 7 8 9 3 chunks +16 lines, -0 lines 0 comments Download
M services/ui/surfaces/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M services/ui/surfaces/display_compositor.h View 2 chunks +17 lines, -6 lines 0 comments Download
M services/ui/surfaces/display_compositor.cc View 1 chunk +27 lines, -3 lines 0 comments Download
A services/ui/surfaces/display_compositor_client.h View 1 2 1 chunk +24 lines, -0 lines 0 comments Download
M services/ui/ws/frame_generator_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M services/ui/ws/server_window_surface.h View 3 chunks +6 lines, -0 lines 0 comments Download
M services/ui/ws/server_window_surface.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M services/ui/ws/test_change_tracker.h View 1 2 3 4 5 6 7 8 9 3 chunks +10 lines, -0 lines 0 comments Download
M services/ui/ws/test_change_tracker.cc View 1 2 3 4 5 6 7 8 9 2 chunks +20 lines, -0 lines 0 comments Download
M services/ui/ws/test_server_window_delegate.cc View 1 chunk +2 lines, -1 line 0 comments Download
M services/ui/ws/test_utils.h View 1 2 3 4 5 6 7 8 9 1 chunk +5 lines, -0 lines 0 comments Download
M services/ui/ws/test_utils.cc View 1 2 3 4 5 6 7 8 9 2 chunks +8 lines, -1 line 0 comments Download
M services/ui/ws/window_server.h View 4 chunks +13 lines, -1 line 0 comments Download
M services/ui/ws/window_server.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +23 lines, -1 line 0 comments Download
M services/ui/ws/window_tree.h View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -0 lines 0 comments Download
M services/ui/ws/window_tree.cc View 1 2 3 4 5 6 7 8 9 3 chunks +30 lines, -0 lines 0 comments Download
M services/ui/ws/window_tree_client_unittest.cc View 1 2 3 4 5 6 7 8 9 2 chunks +59 lines, -0 lines 0 comments Download

Messages

Total messages: 53 (24 generated)
Fady Samuel
Hi Sadrul, I haven't written tests yet. Please let me know if this API works ...
4 years, 2 months ago (2016-10-12 18:11:00 UTC) #2
rjkroege
https://codereview.chromium.org/2414683003/diff/20001/services/ui/public/interfaces/window_tree.mojom File services/ui/public/interfaces/window_tree.mojom (right): https://codereview.chromium.org/2414683003/diff/20001/services/ui/public/interfaces/window_tree.mojom#newcode428 services/ui/public/interfaces/window_tree.mojom:428: // Invoked when a client window submits a new ...
4 years, 2 months ago (2016-10-12 18:21:17 UTC) #6
Fady Samuel
https://codereview.chromium.org/2414683003/diff/20001/services/ui/public/interfaces/window_tree.mojom File services/ui/public/interfaces/window_tree.mojom (right): https://codereview.chromium.org/2414683003/diff/20001/services/ui/public/interfaces/window_tree.mojom#newcode428 services/ui/public/interfaces/window_tree.mojom:428: // Invoked when a client window submits a new ...
4 years, 2 months ago (2016-10-12 18:22:57 UTC) #7
rjkroege
On 2016/10/12 18:22:57, Fady Samuel wrote: > https://codereview.chromium.org/2414683003/diff/20001/services/ui/public/interfaces/window_tree.mojom > File services/ui/public/interfaces/window_tree.mojom (right): > > https://codereview.chromium.org/2414683003/diff/20001/services/ui/public/interfaces/window_tree.mojom#newcode428 ...
4 years, 2 months ago (2016-10-12 18:28:15 UTC) #8
sadrul
https://codereview.chromium.org/2414683003/diff/40001/services/ui/public/cpp/window.cc File services/ui/public/cpp/window.cc (right): https://codereview.chromium.org/2414683003/diff/40001/services/ui/public/cpp/window.cc#newcode815 services/ui/public/cpp/window.cc:815: // SurfaceSequence and returning the refernece. Each ui::Window could ...
4 years, 2 months ago (2016-10-13 04:26:21 UTC) #9
Fady Samuel
4 years, 2 months ago (2016-10-13 18:01:22 UTC) #11
Fady Samuel
PTAL Sadrul!
4 years, 2 months ago (2016-10-14 17:41:19 UTC) #13
Fady Samuel
https://codereview.chromium.org/2414683003/diff/40001/services/ui/public/cpp/window.cc File services/ui/public/cpp/window.cc (right): https://codereview.chromium.org/2414683003/diff/40001/services/ui/public/cpp/window.cc#newcode815 services/ui/public/cpp/window.cc:815: // SurfaceSequence and returning the refernece. On 2016/10/13 04:26:21, ...
4 years, 2 months ago (2016-10-14 17:42:40 UTC) #15
rjkroege
On 2016/10/14 17:42:40, Fady Samuel wrote: > https://codereview.chromium.org/2414683003/diff/40001/services/ui/public/cpp/window.cc > File services/ui/public/cpp/window.cc (right): > > https://codereview.chromium.org/2414683003/diff/40001/services/ui/public/cpp/window.cc#newcode815 ...
4 years, 2 months ago (2016-10-14 19:19:41 UTC) #16
Fady Samuel
+sky@ for a services/ui stamp (I'll wait for sadrul too). Testing is coming too but ...
4 years, 2 months ago (2016-10-14 19:21:32 UTC) #18
sky
https://codereview.chromium.org/2414683003/diff/100001/services/ui/public/cpp/window.h File services/ui/public/cpp/window.h (right): https://codereview.chromium.org/2414683003/diff/100001/services/ui/public/cpp/window.h#newcode406 services/ui/public/cpp/window.h:406: struct SurfaceInfo { I think this code would be ...
4 years, 2 months ago (2016-10-14 20:55:46 UTC) #21
Fady Samuel
PTAL Scott! I've addressed your comments and added a unit test. https://codereview.chromium.org/2414683003/diff/100001/services/ui/public/cpp/window.h File services/ui/public/cpp/window.h (right): ...
4 years, 2 months ago (2016-10-14 21:32:48 UTC) #24
Fady Samuel
+tsepez@ for mojom
4 years, 2 months ago (2016-10-14 21:36:43 UTC) #26
Tom Sepez
lgtm
4 years, 2 months ago (2016-10-14 21:49:13 UTC) #27
sky
https://codereview.chromium.org/2414683003/diff/140001/services/ui/public/cpp/surface_id_handler.h File services/ui/public/cpp/surface_id_handler.h (right): https://codereview.chromium.org/2414683003/diff/140001/services/ui/public/cpp/surface_id_handler.h#newcode15 services/ui/public/cpp/surface_id_handler.h:15: virtual void OnChildWindowSurfaceCreated( This may be called with null, ...
4 years, 2 months ago (2016-10-14 21:55:34 UTC) #28
Fady Samuel
PTAL sky@ https://codereview.chromium.org/2414683003/diff/140001/services/ui/public/cpp/surface_id_handler.h File services/ui/public/cpp/surface_id_handler.h (right): https://codereview.chromium.org/2414683003/diff/140001/services/ui/public/cpp/surface_id_handler.h#newcode15 services/ui/public/cpp/surface_id_handler.h:15: virtual void OnChildWindowSurfaceCreated( On 2016/10/14 21:55:34, sky ...
4 years, 2 months ago (2016-10-14 22:20:14 UTC) #29
sky
LGTM with the following changes. https://codereview.chromium.org/2414683003/diff/180001/services/ui/public/cpp/surface_id_handler.h File services/ui/public/cpp/surface_id_handler.h (right): https://codereview.chromium.org/2414683003/diff/180001/services/ui/public/cpp/surface_id_handler.h#newcode16 services/ui/public/cpp/surface_id_handler.h:16: struct SurfaceInfo { Please ...
4 years, 2 months ago (2016-10-14 22:44:36 UTC) #30
Fady Samuel
Thanks Scott! CQ'ing now. https://codereview.chromium.org/2414683003/diff/180001/services/ui/public/cpp/surface_id_handler.h File services/ui/public/cpp/surface_id_handler.h (right): https://codereview.chromium.org/2414683003/diff/180001/services/ui/public/cpp/surface_id_handler.h#newcode16 services/ui/public/cpp/surface_id_handler.h:16: struct SurfaceInfo { On 2016/10/14 ...
4 years, 2 months ago (2016-10-14 23:09:50 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2414683003/200001
4 years, 2 months ago (2016-10-14 23:10:23 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/316614)
4 years, 2 months ago (2016-10-15 00:18:32 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2414683003/200001
4 years, 2 months ago (2016-10-15 06:38:05 UTC) #38
commit-bot: I haz the power
Committed patchset #11 (id:200001)
4 years, 2 months ago (2016-10-15 07:28:27 UTC) #39
commit-bot: I haz the power
Patchset 11 (id:??) landed as https://crrev.com/065bde79d4e511f613ae89a2fc535029dae26100 Cr-Commit-Position: refs/heads/master@{#425556}
4 years, 2 months ago (2016-10-15 07:30:39 UTC) #41
Ken Rockot(use gerrit already)
Pretty sure this is causing tons of mash_browser_tests flake. Flake started when this landed.
4 years, 2 months ago (2016-10-15 15:40:20 UTC) #43
Ken Rockot(use gerrit already)
A revert of this CL (patchset #11 id:200001) has been created in https://codereview.chromium.org/2424633002/ by rockot@chromium.org. ...
4 years, 2 months ago (2016-10-15 15:40:47 UTC) #44
Fady Samuel
I fixed the crash: we were following a null |surface_info| on LocalSetSurfaceId(nullptr) to compare it ...
4 years, 2 months ago (2016-10-15 16:31:43 UTC) #45
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2414683003/210001
4 years, 2 months ago (2016-10-15 16:34:08 UTC) #49
commit-bot: I haz the power
Committed patchset #12 (id:210001)
4 years, 2 months ago (2016-10-15 17:28:47 UTC) #51
commit-bot: I haz the power
4 years, 2 months ago (2016-10-15 17:30:29 UTC) #53
Message was sent while issue was closed.
Patchset 12 (id:??) landed as
https://crrev.com/433690106161ad7467d59901c469762f160fa4a2
Cr-Commit-Position: refs/heads/master@{#425566}

Powered by Google App Engine
This is Rietveld 408576698