Check failed: HasTransformAnimationThatInflatesBounds() when tracing
Reported by
rog...@opera.com,
Dec 19 2016
|
|||||
Issue descriptionChrome Version: 57.0.2957.0 OS: Linux (locally built content_shell with dchecks enabled) What steps will reproduce the problem? (1) Build content_shell with dchecks enabled (2) Run: ./content_shell --no-sandbox https://www.youtube.com/tv#/watch/ads/control?v=7E4GsPnGQrg --trace-startup='cc,disabled-by-default-cc.debug' --trace-startup-duration=30 (3) What is the expected result? Starts normally and collects trace results What happens instead? This dcheck triggers before the video starts playing: FATAL:animation_player.cc(852)] Check failed: HasTransformAnimationThatInflatesBounds(). TransformAnimationBoundsForBox will give incorrect results if there are no transform animations affecting bounds, non-animated transform is not known See complete stacktrace at the end of the issue description. Please use labels and text to provide additional information. It does not happen if I remove the "disabled-by-default-cc.debug" category from the tracing so, not sure if this code is executed in other circumstances than that specific tracing category. Stacktrace: [9460:9464:1219/094720.393448:1628701874188:FATAL:animation_player.cc(852)] Check failed: HasTransformAnimationThatInflatesBounds(). TransformAnimationBoundsForBox will give incorrect results if there are no transform animations affecting bounds, non-animated transform is not known #0 0x000001891e2e base::debug::StackTrace::StackTrace() #1 0x0000018a509b logging::LogMessage::~LogMessage() #2 0x000002697a7d cc::AnimationPlayer::TransformAnimationBoundsForBox() #3 0x00000269b9b7 cc::ElementAnimations::TransformAnimationBoundsForBox() #4 0x000002692c16 cc::AnimationHost::TransformAnimationBoundsForBox() #5 0x0000023d74d8 cc::LayerUtils::GetAnimationBounds() #6 0x0000023d60c5 cc::LayerImpl::AsValueInto() #7 0x00000243b02d cc::PictureLayerImpl::AsValueInto() #8 0x00000240c0ba cc::LayerTreeImpl::AsValueInto() #9 0x000002460bc0 cc::LayerTreeHostImpl::AsValueWithFrameInto() #10 0x00000245aad2 cc::LayerTreeHostImpl::DrawLayers() #11 0x000004891c44 cc::ProxyImpl::DrawInternal() #12 0x000004891988 cc::ProxyImpl::ScheduledActionDrawIfPossible() #13 0x0000048888a9 cc::Scheduler::ProcessScheduledActions() #14 0x00000488850e cc::Scheduler::OnBeginImplFrameDeadline() #15 0x0000004c54da _ZN4base8internal13FunctorTraitsIMN7content21EmbeddedServiceRunnerEFvvEvE6InvokeIRKNS_7WeakPtrIS3_EEJEEEvS5_OT_DpOT0_ #16 0x00000064ef83 base::CancelableCallback<>::Forward() #17 0x0000004c54da _ZN4base8internal13FunctorTraitsIMN7content21EmbeddedServiceRunnerEFvvEvE6InvokeIRKNS_7WeakPtrIS3_EEJEEEvS5_OT_DpOT0_ #18 0x00000192b76e base::debug::TaskAnnotator::RunTask() #19 0x0000018abe4d base::MessageLoop::RunTask() #20 0x0000018ac516 base::MessageLoop::DoWork() #21 0x0000018adf29 base::MessagePumpDefault::Run() #22 0x0000018abba5 base::MessageLoop::RunHandler() #23 0x0000018cd40c base::RunLoop::Run() #24 0x0000018f32cc base::Thread::Run() #25 0x0000018f37c8 base::Thread::ThreadMain() #26 0x0000018ecbbc base::(anonymous namespace)::ThreadFunc() #27 0x7f2390b6f6ba start_thread #28 0x7f238b98482d clone
,
Jan 19 2017
,
Jan 25 2017
Ali, can you take a look at this bug and triage as necessary? Thanks.
,
Jan 26 2017
This is happening because we have an ElementAnimations that has multiple AnimationPlayers, but only some of these players have a transform animation that inflates bounds. So it's legitimate to ask the ElementAnimations to compute TransformAnimationBoundsForBox, but to compute this the ElementAnimations needs to only ask those players that have a transform animation that inflates bounds to compute the transform animation bounds. I have a CL to fix this up for review: https://codereview.chromium.org/2655993002/
,
Feb 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bd39ee6aee08c93647e9174347d7926e58b11012 commit bd39ee6aee08c93647e9174347d7926e58b11012 Author: ajuma <ajuma@chromium.org> Date: Thu Feb 02 19:14:39 2017 cc: Fix animation bounds computation for multiple players When one ElementAnimations has multiple AnimationPlayers, the ElementAnimations can have an animation that inflates bounds without every player having such an animation. This CL makes ElementAnimations correctly handle this case, fixing a DCHECK that was previously being hit in AnimationPlayer::TransformAnimationBoundsForBox. BUG= 675545 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2655993002 Cr-Commit-Position: refs/heads/master@{#447812} [modify] https://crrev.com/bd39ee6aee08c93647e9174347d7926e58b11012/cc/animation/element_animations.cc [modify] https://crrev.com/bd39ee6aee08c93647e9174347d7926e58b11012/cc/animation/element_animations_unittest.cc
,
Feb 2 2017
,
Feb 2 2017
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by smcgruer@chromium.org
, Jan 18 2017