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

Issue 1398443008: Add support for (de)serializing cc::Layer hierarchy. (Closed)

Created:
5 years, 2 months ago by nyquist
Modified:
5 years, 1 month ago
CC:
Wez, cc-bugs_chromium.org, chromium-reviews, Kevin M
Base URL:
https://chromium.googlesource.com/chromium/src.git@review-1394353002
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add support for (de)serializing cc::Layer hierarchy. This CL adds a protocol buffer for serializing the Layer hierarchy, including the mask and replica layers. This will be used whenever the hierarchy has changed and needs to be sent to the client. Given that the protocol still is in flux, and for good measure, all fields in the protocol buffer are marked as optional, even the currently required fields. When a hierarchy is serialized, the whole hierarchy is serialized from the root node, instead of just the changed subtree. Most of the logic lives in the Layer class, but the possibility to change the root of the hierarchy is extracted out to a LayerProtoConverter. It also has functionality to build up a map of the current tree, which will also be used during property deserialization. The next CL will deal with serializing the properties: https://codereview.chromium.org/1423523002/ BUG=538710 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/353b7d5d108750e6af2e254bc7e20ee0043b1d99 Cr-Commit-Position: refs/heads/master@{#358424}

Patch Set 1 #

Patch Set 2 : Added hierarchical serialization and deserialization (no properties) #

Patch Set 3 : Add missing serialization of mask and replica layer properties #

Patch Set 4 : Cleaned up quite a bit, still missing one unittest #

Patch Set 5 : Added last tests and fixed CC_EXPORT #

Patch Set 6 : Fixed CC_EXPORT #

Total comments: 35

Patch Set 7 : Addressed most comments, except merging new functionality #

Patch Set 8 : Moved functionality outside of Layer to LayerProtoConverter. Updated test-comments to be multiline. #

Total comments: 13

Patch Set 9 : Addressed comments from vmpstr #

Total comments: 4

Patch Set 10 : Addressed comments from vmpstr@ again #

Patch Set 11 : git merge origin/master #

Patch Set 12 : Fix GYP build in //cc #

Total comments: 6

Patch Set 13 : Merged origin/master #

Patch Set 14 : Remove include of layer.pb.h #

Patch Set 15 : Added descriptive comment #

Patch Set 16 : Reorderded TODO #

Unified diffs Side-by-side diffs Delta from patch set Stats (+590 lines, -0 lines) Patch
M cc/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -0 lines 0 comments Download
M cc/cc.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -0 lines 0 comments Download
M cc/cc_tests.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M cc/layers/layer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 chunks +29 lines, -0 lines 0 comments Download
M cc/layers/layer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +69 lines, -0 lines 0 comments Download
A cc/layers/layer_proto_converter.h View 1 2 3 4 5 6 7 8 1 chunk +54 lines, -0 lines 0 comments Download
A cc/layers/layer_proto_converter.cc View 1 2 3 4 5 6 7 8 1 chunk +72 lines, -0 lines 0 comments Download
A cc/layers/layer_proto_converter_unittest.cc View 1 2 3 4 5 6 7 1 chunk +110 lines, -0 lines 0 comments Download
M cc/layers/layer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +218 lines, -0 lines 0 comments Download
M cc/proto/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
A cc/proto/layer.proto View 1 2 3 4 5 6 1 chunk +30 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 66 (27 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/1
5 years, 2 months ago (2015-10-14 23:23:53 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_compile_dbg on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/android_compile_dbg/builds/72375) cast_shell_linux on ...
5 years, 2 months ago (2015-10-14 23:40:51 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/80001
5 years, 2 months ago (2015-10-21 18:44:58 UTC) #9
nyquist
vmpstr: PTAL as cc/ OWNERS dtrainor: PTAL for blimp
5 years, 2 months ago (2015-10-21 18:48:05 UTC) #10
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/113050)
5 years, 2 months ago (2015-10-21 18:57:07 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/100001
5 years, 2 months ago (2015-10-21 21:03:00 UTC) #14
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_compile_dbg_32_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_compile_dbg_32_ng/builds/112561)
5 years, 2 months ago (2015-10-21 21:16:11 UTC) #16
vmpstr
Do you think it's possible to combine LayerSerializer/LayerDeserializer/LayerProtoFactory into one class that deals with Layer ...
5 years, 2 months ago (2015-10-21 22:34:14 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/120001
5 years, 2 months ago (2015-10-22 23:11:55 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/113799) mac_chromium_rel_ng on ...
5 years, 2 months ago (2015-10-22 23:23:25 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/140001
5 years, 2 months ago (2015-10-23 00:11:37 UTC) #23
nyquist
vmpstr: PTAL. Patch set 7 addresses all the code-specific comments you had. Patch set 8 ...
5 years, 2 months ago (2015-10-23 00:12:31 UTC) #24
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/113831) mac_chromium_rel_ng on ...
5 years, 2 months ago (2015-10-23 00:26:26 UTC) #26
vmpstr
https://codereview.chromium.org/1398443008/diff/100001/cc/proto/layer.proto File cc/proto/layer.proto (right): https://codereview.chromium.org/1398443008/diff/100001/cc/proto/layer.proto#newcode21 cc/proto/layer.proto:21: // required On 2015/10/23 00:12:31, nyquist (OOO - back ...
5 years, 2 months ago (2015-10-23 21:26:10 UTC) #27
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/160001
5 years, 1 month ago (2015-10-26 03:14:10 UTC) #29
nyquist
vmpstr: PTAL https://codereview.chromium.org/1398443008/diff/140001/cc/layers/layer.cc File cc/layers/layer.cc (right): https://codereview.chromium.org/1398443008/diff/140001/cc/layers/layer.cc#newcode1352 cc/layers/layer.cc:1352: proto->set_type(proto::Base); On 2015/10/23 21:26:10, vmpstr wrote: > ...
5 years, 1 month ago (2015-10-26 03:14:29 UTC) #30
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios_rel_device_ninja on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios_rel_device_ninja/builds/127730) mac_chromium_gn_rel on ...
5 years, 1 month ago (2015-10-26 03:15:35 UTC) #32
David Trainor- moved to gerrit
CC'ing wez@ and kmarshall@ for FYI.
5 years, 1 month ago (2015-10-26 16:06:16 UTC) #33
vmpstr
So my understanding is that this is just the structural serialization (no actual data aside ...
5 years, 1 month ago (2015-10-26 17:51:45 UTC) #34
nyquist
vmpstr: PTAL https://codereview.chromium.org/1398443008/diff/160001/cc/layers/layer.h File cc/layers/layer.h (right): https://codereview.chromium.org/1398443008/diff/160001/cc/layers/layer.h#newcode372 cc/layers/layer.h:372: void ToLayerNodeProto(proto::LayerNode* proto) const; On 2015/10/26 17:51:45, ...
5 years, 1 month ago (2015-10-26 19:01:53 UTC) #35
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/200001
5 years, 1 month ago (2015-10-26 19:22:54 UTC) #37
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_chromium_gn_compile_dbg on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_dbg/builds/132269) cast_shell_android on ...
5 years, 1 month ago (2015-10-26 19:34:27 UTC) #39
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/220001
5 years, 1 month ago (2015-10-26 22:21:11 UTC) #41
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_chromium_gn_compile_rel on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/android_chromium_gn_compile_rel/builds/149448) cast_shell_android on ...
5 years, 1 month ago (2015-10-26 22:31:10 UTC) #44
Wez
https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h File cc/layers/layer.h (right): https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h#newcode365 cc/layers/layer.h:365: virtual proto::LayerType GetTypeForProtoSerialization() const; IIUC this was previously implicit ...
5 years, 1 month ago (2015-10-27 03:07:06 UTC) #46
nyquist
https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h File cc/layers/layer.h (right): https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h#newcode365 cc/layers/layer.h:365: virtual proto::LayerType GetTypeForProtoSerialization() const; On 2015/10/27 03:07:06, Wez wrote: ...
5 years, 1 month ago (2015-10-28 16:03:45 UTC) #47
nyquist
5 years, 1 month ago (2015-10-28 16:03:53 UTC) #48
vmpstr
lgtm, assuming wez@ is ok with it. https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h File cc/layers/layer.h (right): https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h#newcode371 cc/layers/layer.h:371: void ToLayerNodeProto(proto::LayerNode* ...
5 years, 1 month ago (2015-10-28 18:20:49 UTC) #49
Wez
https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h File cc/layers/layer.h (right): https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h#newcode371 cc/layers/layer.h:371: void ToLayerNodeProto(proto::LayerNode* proto) const; On 2015/10/28 at 18:20:49, vmpstr ...
5 years, 1 month ago (2015-10-28 23:59:24 UTC) #50
danakj
On Wed, Oct 28, 2015 at 4:59 PM, <wez@chromium.org> wrote: > > https://codereview.chromium.org/1398443008/diff/220001/cc/layers/layer.h > File ...
5 years, 1 month ago (2015-10-29 17:56:13 UTC) #51
David Trainor- moved to gerrit
On 2015/10/29 17:56:13, danakj wrote: > On Wed, Oct 28, 2015 at 4:59 PM, <mailto:wez@chromium.org> ...
5 years, 1 month ago (2015-10-31 16:42:35 UTC) #52
danakj
On Sat, Oct 31, 2015 at 9:42 AM, <dtrainor@chromium.org> wrote: > On 2015/10/29 17:56:13, danakj ...
5 years, 1 month ago (2015-11-02 18:42:44 UTC) #53
Wez
Deferring to David's judgement on the Id issue!
5 years, 1 month ago (2015-11-03 21:52:33 UTC) #55
David Trainor- moved to gerrit
lgtm
5 years, 1 month ago (2015-11-06 21:07:56 UTC) #57
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/300001
5 years, 1 month ago (2015-11-06 21:13:12 UTC) #59
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 1 month ago (2015-11-06 22:11:46 UTC) #61
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1398443008/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1398443008/300001
5 years, 1 month ago (2015-11-06 22:20:04 UTC) #64
commit-bot: I haz the power
Committed patchset #16 (id:300001)
5 years, 1 month ago (2015-11-06 22:27:00 UTC) #65
commit-bot: I haz the power
5 years, 1 month ago (2015-11-06 22:28:05 UTC) #66
Message was sent while issue was closed.
Patchset 16 (id:??) landed as
https://crrev.com/353b7d5d108750e6af2e254bc7e20ee0043b1d99
Cr-Commit-Position: refs/heads/master@{#358424}

Powered by Google App Engine
This is Rietveld 408576698