virtual/threaded/animations/composited-filter-webkit-filter.html virtual/threaded/animations/compositor-independent-transform-cancel.html appear to fail because under blink-gen-property-trees we return an unexpected value from isCompositedAnimation
virtual/threaded/animations/img-element-transform.html too
Running through this case I think I may have found the underlying cause, we do in fact composite the element, but we composite it with a namespace for the filter effect. I.e. paint_property_tree_builder.cc assigns a namespace according to the effect type, in this case filter: https://cs.chromium.org/search/?q=file:paint_property_tree_builder.cc+CompositorElementIdNamespace::&type=cs This results in us getting an element_id of 147 for the filter "element". Then when we run Animation::CheckCanStartAnimationOnCompositorInternal we use the primary namespaced element id to check if the element has been composited. This results in the code assuming it hasn't: https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/animation/animation.cc?type=cs&q=file:animation.cc+CompositorElementIdNamespace::kPrimary&g=0&l=870
I think the way to fix this is to move the has composited element check down into CompositorAnimations::CheckCanStartEffectOnCompositor: https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/animation/compositor_animations.cc?type=cs&q=function:blink::CompositorAnimations::CheckCanStartEffectOnCompositor&g=0&l=149 Since this has the targeted properties, it knows which namespace of element we should be checking for on the compositor. We'll also have to verify that this doesn't break existing animations (i.e. that the elements with the filter namespace do exist today).
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f2800076a2fab07efda29f119fff3ca9d8f4f6ba commit f2800076a2fab07efda29f119fff3ca9d8f4f6ba Author: Peter Mayo <petermayo@chromium.org> Date: Wed Aug 29 15:24:27 2018 [BGPT] move composited element check down. Move the composited element check from CanStartAnimationOnCompositor to CheckCanStartEffectOnCompositor because the effect has sufficient context to use the correct namespace to map the object ID to the compositor element ID, whereas the animation does not. Bug: 855702 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 Change-Id: Ia490fb07780586ddd5b5059671c3611139a25ce8 Reviewed-on: https://chromium-review.googlesource.com/1170238 Commit-Queue: Peter Mayo <petermayo@chromium.org> Reviewed-by: Robert Flack <flackr@chromium.org> Cr-Commit-Position: refs/heads/master@{#587124} [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/WebKit/LayoutTests/animations/responsive/filter-responsive-neutral-keyframe.html [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/WebKit/LayoutTests/transitions/resources/opacity-transform-transitions-inside-iframe-inner.html [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/animation.cc [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/animation.h [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/animation_test.cc [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/compositor_animations.cc [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/compositor_animations.h [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/compositor_animations_test.cc [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/keyframe.h [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/keyframe_effect.cc [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/keyframe_effect.h [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/animation/string_keyframe.h [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/layout/layout_object.h [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/core/paint/fragment_data.h [modify] https://crrev.com/f2800076a2fab07efda29f119fff3ca9d8f4f6ba/third_party/blink/renderer/modules/animationworklet/worklet_animation.cc
Comment 1 by petermayo@chromium.org
, Jun 22 2018