[go: nahoru, domu]

Revert "Reland "Remove tracking of which animating elements exist.""

This reverts commit 85c7ec9d9caf533428c6b40f85d3b03de4c4f81c.

Reason for revert: Causing crashes due to animating non-existent property nodes https://crbug.com/1305503 https://crbug.com/1305487

Original change's description:
> Reland "Remove tracking of which animating elements exist."
>
> The crashes seen last time should have been resolved by https://chromium-review.googlesource.com/c/chromium/src/+/3504027, https://chromium-review.googlesource.com/c/chromium/src/+/3498651, and https://chromium-review.googlesource.com/c/chromium/src/+/3517088
>
> Original change's description:
> > Remove tracking of which animating elements exist.
> >
> > Prior to property trees, composited animations were created before their
> > corresponding layers existed. However, the blink lifecycle now ensures
> > that composited animations are created in sync with their property tree
> > nodes such that they always exist in the tree. Removing this code saves
> > time and will unlock further simplifications of the code.
> >
> > The ui animation infrastructure eagerly creates layers before their
> > animations so it doesn't have this issue and the LayerAnimator class
> > ensures that animations are cleaned up on Layer removal.
> >
> > Bug: 900241
> > Change-Id: If854cf67ba8bd21e727e42475d26ce1a846a7674
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3200347
> > Reviewed-by: David Baron <dbaron@chromium.org>
> > Reviewed-by: Philip Rogers <pdr@chromium.org>
> > Commit-Queue: Robert Flack <flackr@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#975833}
>
> Bug: 900241
> Change-Id: I59b620322c77bb98d935f8785fbb87afad8e7be1
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3498292
> Reviewed-by: David Baron <dbaron@chromium.org>
> Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
> Commit-Queue: Robert Flack <flackr@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#980063}

Bug: 900241
Change-Id: I73c960f092773d193639c64322881b655ee00505
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3517538
Auto-Submit: Robert Flack <flackr@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#980670}
diff --git a/cc/animation/animation_timeline.cc b/cc/animation/animation_timeline.cc
index e4ce1186..ac3a92e 100644
--- a/cc/animation/animation_timeline.cc
+++ b/cc/animation/animation_timeline.cc
@@ -154,8 +154,8 @@
 void AnimationTimeline::EraseAnimation(scoped_refptr<Animation> animation) {
   if (animation->element_animations())
     animation->DetachElement();
-  animation->SetAnimationHost(nullptr);
   animation->SetAnimationTimeline(nullptr);
+  animation->SetAnimationHost(nullptr);
 }
 
 void AnimationTimeline::PushPropertiesToImplThread(