Implement testing infrastructure for BlinkGenPropertyTrees |
||||||
Issue descriptionThis is a tracking bug for the infrastructure work needed to support unified property tree generation. Some known tasks include: Repurpose SPV2 trybot for BlinkGenPropertyTrees Add asserts to cc that old property trees == new property trees
,
Apr 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3eb645cceaf1388986e7a0cc1723522926c2a7c6 commit 3eb645cceaf1388986e7a0cc1723522926c2a7c6 Author: Philip Rogers <pdr@chromium.org> Date: Mon Apr 30 22:25:19 2018 [BlinkGenPropertyTrees] Add skeleton for layout test infrastructure Adds a skeleton of basic layout test infrastructure. A virtual test suite has been added just to have some basic coverage on the commit queue. Flag expectations should be used for all other tests. An initial set of failing tests have been added. The primary way to run tests should be: run-webkit-tests --additional-driver-flag=--enable-blink-gen-property-trees Bug: 836902 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Ie440e26e545bdaa30a1a87ef407dbea1eca59920 Reviewed-on: https://chromium-review.googlesource.com/1035534 Reviewed-by: David Bokan <bokan@chromium.org> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#554900} [add] https://crrev.com/3eb645cceaf1388986e7a0cc1723522926c2a7c6/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees [modify] https://crrev.com/3eb645cceaf1388986e7a0cc1723522926c2a7c6/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 [modify] https://crrev.com/3eb645cceaf1388986e7a0cc1723522926c2a7c6/third_party/WebKit/LayoutTests/VirtualTestSuites [add] https://crrev.com/3eb645cceaf1388986e7a0cc1723522926c2a7c6/third_party/WebKit/LayoutTests/virtual/blink-gen-property-trees/paint/transparency/README.txt [modify] https://crrev.com/3eb645cceaf1388986e7a0cc1723522926c2a7c6/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
,
May 1 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dcf07e326c023622947b3e6ec6ccc1bb7d256cbd commit dcf07e326c023622947b3e6ec6ccc1bb7d256cbd Author: Philip Rogers <pdr@chromium.org> Date: Tue May 01 17:02:33 2018 [BlinkGenPropertyTrees] Run paint unit tests with BlinkGenPropertyTrees This patch starts running the paint unit tests with the new BlinkGenPropertyTrees configuration. A small codechange was required to pass FrameThrottlingTest's LifecycleUpdateAfterUnthrottledCompositingUpdate test. Just like https://chromium-review.googlesource.com/c/chromium/src/+/900262, we need to skip the collection of throttled GraphicsLayers because the property tree state will be undefined. Bug: 836902 Change-Id: I038d55bb05e9560f7e1bd0594cb3386a8bae016a Reviewed-on: https://chromium-review.googlesource.com/1037189 Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#555080} [modify] https://crrev.com/dcf07e326c023622947b3e6ec6ccc1bb7d256cbd/third_party/blink/renderer/core/frame/local_frame_view.cc [modify] https://crrev.com/dcf07e326c023622947b3e6ec6ccc1bb7d256cbd/third_party/blink/renderer/platform/testing/paint_test_configurations.h
,
Jun 18 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4531d1ad41a9db48f59774118995c06875ee1b24 commit 4531d1ad41a9db48f59774118995c06875ee1b24 Author: Philip Rogers <pdr@chromium.org> Date: Mon Jun 18 15:13:46 2018 [BlinkGenPropertyTrees] DCHECK that use_layer_lists is enabled In [1] we found tests were being run with BlinkGenPropertyTrees enabled but without use_layer_lists. This issue is difficult to debug and will hit other developers. This patch adds a DCHECK that use_layer_lists is enabled. [1] https://chromium-review.googlesource.com/c/chromium/src/+/1083012 Bug: 836902 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0c9cc1393100a66528abae84842e2164fb4ad107 Reviewed-on: https://chromium-review.googlesource.com/1102562 Reviewed-by: David Bokan <bokan@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#568012} [modify] https://crrev.com/4531d1ad41a9db48f59774118995c06875ee1b24/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.cc
,
Jun 19 2018
,
Aug 21
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6bdec7f4bc5d4e9ffe920ef1181ab2663621ebbc commit 6bdec7f4bc5d4e9ffe920ef1181ab2663621ebbc Author: Philip Rogers <pdr@chromium.org> Date: Tue Aug 21 16:29:06 2018 [BlinkGenPropertyTrees] Add blink->cc scroll layer tests This patch updates the paint-related WebFrameTests to run with BlinkGenPropertyTrees so the blink->cc layer integration is tested. This test infrastructure will be useful in future patches to ensure viewport layers/nodes are created. These paint WebFrameTests are integration tests: they use html input and ensure the correct cc::Layers are created. Bug: 836902 Change-Id: Iac6c6ce82b2ae45370d539a5f3c7722447296751 Cq-Include-Trybots: luci.chromium.try:linux-blink-gen-property-trees;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/1180619 Commit-Queue: Philip Rogers <pdr@chromium.org> Reviewed-by: David Bokan <bokan@chromium.org> Cr-Commit-Position: refs/heads/master@{#584775} [modify] https://crrev.com/6bdec7f4bc5d4e9ffe920ef1181ab2663621ebbc/third_party/blink/renderer/core/exported/web_frame_test.cc [modify] https://crrev.com/6bdec7f4bc5d4e9ffe920ef1181ab2663621ebbc/third_party/blink/renderer/platform/testing/paint_test_configurations.h
,
Sep 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eac266aa1bd6dcb746751d9f9013586ea754c8ca commit eac266aa1bd6dcb746751d9f9013586ea754c8ca Author: Philip Rogers <pdr@chromium.org> Date: Tue Sep 04 16:01:58 2018 [BlinkGenPropertyTrees] Run PaintArtifactCompositor tests PaintArtifactCompositor's tests were not running with BlinkGenPropertyTrees (BGPT). This patch updates the tests to run in both SlimmingPaintV2 (SPV2) and BGPT modes. Some non-trivial changes were required because of the differences in scrollable layers. In SPV2, special scroll hit test layers are created in the unscrolled transform space. In BGPT, ScrollingCoordinator creates scrollable layers associated with the scrolled transform space which are passed to PaintArtifactcompositor as foreign layers. Bug: 836902 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I1c50c90eba8918dd607472b93a835336a1f1af0c Reviewed-on: https://chromium-review.googlesource.com/1201442 Reviewed-by: David Bokan <bokan@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#588526} [modify] https://crrev.com/eac266aa1bd6dcb746751d9f9013586ea754c8ca/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
,
Sep 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eac266aa1bd6dcb746751d9f9013586ea754c8ca commit eac266aa1bd6dcb746751d9f9013586ea754c8ca Author: Philip Rogers <pdr@chromium.org> Date: Tue Sep 04 16:01:58 2018 [BlinkGenPropertyTrees] Run PaintArtifactCompositor tests PaintArtifactCompositor's tests were not running with BlinkGenPropertyTrees (BGPT). This patch updates the tests to run in both SlimmingPaintV2 (SPV2) and BGPT modes. Some non-trivial changes were required because of the differences in scrollable layers. In SPV2, special scroll hit test layers are created in the unscrolled transform space. In BGPT, ScrollingCoordinator creates scrollable layers associated with the scrolled transform space which are passed to PaintArtifactcompositor as foreign layers. Bug: 836902 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I1c50c90eba8918dd607472b93a835336a1f1af0c Reviewed-on: https://chromium-review.googlesource.com/1201442 Reviewed-by: David Bokan <bokan@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#588526} [modify] https://crrev.com/eac266aa1bd6dcb746751d9f9013586ea754c8ca/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
,
Sep 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eac266aa1bd6dcb746751d9f9013586ea754c8ca commit eac266aa1bd6dcb746751d9f9013586ea754c8ca Author: Philip Rogers <pdr@chromium.org> Date: Tue Sep 04 16:01:58 2018 [BlinkGenPropertyTrees] Run PaintArtifactCompositor tests PaintArtifactCompositor's tests were not running with BlinkGenPropertyTrees (BGPT). This patch updates the tests to run in both SlimmingPaintV2 (SPV2) and BGPT modes. Some non-trivial changes were required because of the differences in scrollable layers. In SPV2, special scroll hit test layers are created in the unscrolled transform space. In BGPT, ScrollingCoordinator creates scrollable layers associated with the scrolled transform space which are passed to PaintArtifactcompositor as foreign layers. Bug: 836902 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I1c50c90eba8918dd607472b93a835336a1f1af0c Reviewed-on: https://chromium-review.googlesource.com/1201442 Reviewed-by: David Bokan <bokan@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#588526} [modify] https://crrev.com/eac266aa1bd6dcb746751d9f9013586ea754c8ca/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
,
Sep 14
,
Oct 21
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a7d66f97e3e24117a3017e49f4a076adec860ea1 commit a7d66f97e3e24117a3017e49f4a076adec860ea1 Author: Philip Rogers <pdr@chromium.org> Date: Sun Oct 21 04:12:28 2018 [BlinkGenPropertyTrees] Pass all unit tests with BGPT This patch prepares for promoting BlinkGenPropertyTrees (BGPT) to experimental by ensuring all unit tests pass. This patch has three changes: 1) The foreign layer BGPT code has been disabled when SPV2 is on in LocalFrameView::PaintTree. 2) Some CompositedLayerMapping tests of non-BGPT code have been changed to only run without BGPT. 3) ScrollingCoordinatorTest of sticky have been updated to look up sticky constraints on property trees when BGPT is enabled. Bug: 836902 Change-Id: If5c32b3e02c0908bf505bddbb2d4b635b8049555 Reviewed-on: https://chromium-review.googlesource.com/c/1287169 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#601428} [modify] https://crrev.com/a7d66f97e3e24117a3017e49f4a076adec860ea1/third_party/blink/renderer/core/frame/local_frame_view.cc [modify] https://crrev.com/a7d66f97e3e24117a3017e49f4a076adec860ea1/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc [modify] https://crrev.com/a7d66f97e3e24117a3017e49f4a076adec860ea1/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping_test.cc
,
Oct 22
,
Oct 23
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/40bd3b7b37fbe7294560d7f2974539bbd72f6f0e commit 40bd3b7b37fbe7294560d7f2974539bbd72f6f0e Author: Philip Rogers <pdr@chromium.org> Date: Tue Oct 23 22:13:36 2018 [BlinkGenPropertyTrees] Do not clear paint controller in SPV2 mode This patch is a followup to https://crrev.com/601428 and stops clearing the paint controller in SPV2 mode. This prevents flashing on all pages when running with SPV2+BGPT and will unblock making BGPT experimental (all SPV2 layout tests fail without this change): https://chromium-review.googlesource.com/c/chromium/src/+/1294204 Bug: 836902 Change-Id: I80bea03bc3d06c5fe6761734babdf6517813e7bb Reviewed-on: https://chromium-review.googlesource.com/c/1297060 Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#602128} [modify] https://crrev.com/40bd3b7b37fbe7294560d7f2974539bbd72f6f0e/third_party/blink/renderer/core/frame/local_frame_view.cc
,
Oct 23
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/40bd3b7b37fbe7294560d7f2974539bbd72f6f0e commit 40bd3b7b37fbe7294560d7f2974539bbd72f6f0e Author: Philip Rogers <pdr@chromium.org> Date: Tue Oct 23 22:13:36 2018 [BlinkGenPropertyTrees] Do not clear paint controller in SPV2 mode This patch is a followup to https://crrev.com/601428 and stops clearing the paint controller in SPV2 mode. This prevents flashing on all pages when running with SPV2+BGPT and will unblock making BGPT experimental (all SPV2 layout tests fail without this change): https://chromium-review.googlesource.com/c/chromium/src/+/1294204 Bug: 836902 Change-Id: I80bea03bc3d06c5fe6761734babdf6517813e7bb Reviewed-on: https://chromium-review.googlesource.com/c/1297060 Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#602128} [modify] https://crrev.com/40bd3b7b37fbe7294560d7f2974539bbd72f6f0e/third_party/blink/renderer/core/frame/local_frame_view.cc
,
Dec 18
,
Dec 20
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/40ac3e0dfaf5a4b1f73441222f91f7f19f148396 commit 40ac3e0dfaf5a4b1f73441222f91f7f19f148396 Author: Philip Rogers <pdr@chromium.org> Date: Thu Dec 20 17:13:18 2018 Cleanup cc::Layer and cc::LayerImpl logging This patch makes the following changes to cc::Layer{Impl} logging: 1) LayerTreeHostImpl::LayerListAsJson has been moved to LayerTreeImpl::LayerListAsJson. This lets us fix a bug where logging the layer list in LayerTreeHost::FinishCommitOnImplThread would log the active tree instead of the sync tree. 2) JSON output now prints with OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION. This simplifies long output from: "local": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], to: "local": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], 3) The cc::Layer logging now lists property tree indices on one line. 4) When logging layers, we now specify cc::Layer or cc::LayerImpl. 5) cc::LayerImpl's "OPACITY" value has been softened to "Opacity". To test this change, run content shell with: --vmodule=*layer_tree_host*=3 This patch is in support of improved documentation for debugging blink & cc: https://docs.google.com/document/d/1vgQY11pxRQUDAufxSsc2xKyQCKGPftZ5wZnjY2El4w8 Bug: 836902 Change-Id: I259b64b194ac569dc97eace2c2470ff80c7d2fa5 Reviewed-on: https://chromium-review.googlesource.com/c/1386650 Reviewed-by: vmpstr <vmpstr@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#618252} [modify] https://crrev.com/40ac3e0dfaf5a4b1f73441222f91f7f19f148396/cc/layers/layer_impl.cc [modify] https://crrev.com/40ac3e0dfaf5a4b1f73441222f91f7f19f148396/cc/test/layer_tree_json_parser_unittest.cc [modify] https://crrev.com/40ac3e0dfaf5a4b1f73441222f91f7f19f148396/cc/trees/layer_tree_host.cc [modify] https://crrev.com/40ac3e0dfaf5a4b1f73441222f91f7f19f148396/cc/trees/layer_tree_host_impl.cc [modify] https://crrev.com/40ac3e0dfaf5a4b1f73441222f91f7f19f148396/cc/trees/layer_tree_host_impl.h [modify] https://crrev.com/40ac3e0dfaf5a4b1f73441222f91f7f19f148396/cc/trees/layer_tree_impl.cc [modify] https://crrev.com/40ac3e0dfaf5a4b1f73441222f91f7f19f148396/cc/trees/layer_tree_impl.h
,
Jan 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/92f7238f18f6b11500e89eda44a47874f950dfc4 commit 92f7238f18f6b11500e89eda44a47874f950dfc4 Author: Philip Rogers <pdr@chromium.org> Date: Fri Jan 04 19:01:59 2019 Add ToString functions to cc::Layer, cc::LayerImpl, and cc::PropertyTrees These functions will aid in debugging, particularly from a debugger. This patch is in support of improved documentation for debugging blink & cc: https://docs.google.com/document/d/1vgQY11pxRQUDAufxSsc2xKyQCKGPftZ5wZnjY2El4w8 Bug: 836902 Change-Id: Ibe1da5b3335a130362b8baa12f005dc7cb23ff04 Reviewed-on: https://chromium-review.googlesource.com/c/1396220 Reviewed-by: enne <enne@chromium.org> Commit-Queue: Philip Rogers <pdr@chromium.org> Cr-Commit-Position: refs/heads/master@{#620021} [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/layer.cc [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/layer.h [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/layer_impl.cc [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/layer_impl.h [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/nine_patch_layer_impl.cc [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/nine_patch_layer_impl.h [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/ui_resource_layer_impl.cc [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/layers/ui_resource_layer_impl.h [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/trees/layer_tree_host.cc [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/trees/layer_tree_host_impl.cc [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/trees/property_tree.cc [modify] https://crrev.com/92f7238f18f6b11500e89eda44a47874f950dfc4/cc/trees/property_tree.h
,
Jan 10
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9924d633da19c65386bbac86f901e98965300b2c commit 9924d633da19c65386bbac86f901e98965300b2c Author: Philip Rogers <pdr@chromium.org> Date: Thu Jan 10 01:39:17 2019 Add offset, element id, and property tree indices to LayerImpl json This patch adds the following fields to the LayerImpl json output: OffsetToTransformParent ElementId transform_tree_index clip_tree_index effect_tree_index scroll_tree_index Using lowercase names for the property tree indices keeps them grouped together if the json is sorted. The formatting of cc::Layer's output has been updated to more closely match this output. With this change, a cc::LayerImpl::ToString looks like: "Bounds": [ 100, 100 ], "ContentsOpaque": true, "DrawsContent": true, "ElementId": "(128)", "HitTestableWithoutDrawsContent": true, "Is3dSorted": false, "LayerId": 10, "LayerType": "cc::PictureLayerImpl", "OffsetToTransformParent": [ 0, 0 ], "Opacity": 1, "Transform": [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], "clip_tree_index": 2, "effect_tree_index": 2, "scroll_tree_index": 3, "transform_tree_index": 6 The corresponding cc::Layer::ToString looks like: layer_id: 10 Bounds: 100x100 ElementId: (128) OffsetToTransformParent: [0.000000 0.000000] Position: 13.000000,0.000000 scrollable: 0 clip_tree_index: 2 effect_tree_index: 2 scroll_tree_index: 3 transform_tree_index: 6 Bug: 836902 Change-Id: I2b7929c1574504b6edf830f376b548074f4a19b7 Reviewed-on: https://chromium-review.googlesource.com/c/1403495 Commit-Queue: Philip Rogers <pdr@chromium.org> Reviewed-by: enne <enne@chromium.org> Cr-Commit-Position: refs/heads/master@{#621412} [modify] https://crrev.com/9924d633da19c65386bbac86f901e98965300b2c/cc/layers/layer.cc [modify] https://crrev.com/9924d633da19c65386bbac86f901e98965300b2c/cc/layers/layer_impl.cc
,
Jan 10
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by pdr@chromium.org
, Apr 30 2018