New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 821547 link

Starred by 1 user

Issue metadata

Status: Fixed
Merged: issue 816534
Owner:
Closed: Aug 27
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 875044



Sign in to add a comment

backdrop-filter-* layout tests fail WebKit Linux Trusty Leak bot

Project Member Reported by sheriff-...@appspot.gserviceaccount.com, Mar 13 2018

Issue description

Filed by sheriff-o-matic@appspot.gserviceaccount.com on behalf of lunalu@google.com


Unexpected Failures:
* animations/composition/backdrop-filter-composition.html
* animations/interpolation/backdrop-filter-interpolation.html
* external/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html
* svg/animations/additive-type-by-animation.html
* virtual/threaded/animations/composition/backdrop-filter-composition.html
* virtual/threaded/animations/interpolation/backdrop-filter-interpolation.html

https://uberchromegw.corp.google.com/i/chromium.webkit/builders/WebKit%20Linux%20Trusty%20Leak
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07737e12b6c57778a67005fad06498887d4a960d

commit 07737e12b6c57778a67005fad06498887d4a960d
Author: Luna Lu <loonybear@chromium.org>
Date: Tue Mar 13 20:15:26 2018

Marking failures of layout tests on Webkit Linux Trusty

Bug:  821547 
Change-Id: Idd4bd103a12935599a811a3d02b6f0071637543d
Reviewed-on: https://chromium-review.googlesource.com/961443
Commit-Queue: Luna Lu <loonybear@chromium.org>
Reviewed-by: Luna Lu <loonybear@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542892}
[modify] https://crrev.com/07737e12b6c57778a67005fad06498887d4a960d/third_party/WebKit/LayoutTests/TestExpectations

Mergedinto: 816534
Status: Duplicate (was: Available)
Blockedon: 816534
Labels: -Sheriff-Chromium
Status: Available (was: Duplicate)
Components: Blink>Animation
Labels: Test-Disabled
Status: Untriaged (was: Available)
 Issue 822974  has been merged into this issue.
Cc: hajimehoshi@chromium.org karandeepb@chromium.org
Labels: -Pri-2 Sheriff-Chromium Pri-1
The CL in c#1 seems to have not suppressed the leaks. Think this needs to be suppressed in the LeakExpectations file. 
Owner: karandeepb@chromium.org
Status: Assigned (was: Untriaged)
Will land https://chromium-review.googlesource.com/c/chromium/src/+/967521 followed by https://chromium-review.googlesource.com/c/chromium/src/+/967511
Project Member

Comment 8 by bugdroid1@chromium.org, Mar 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46fa3aaf6c6e106a1f2ea360db7c9e407d742f8a

commit 46fa3aaf6c6e106a1f2ea360db7c9e407d742f8a
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat Mar 17 01:31:32 2018

Revert "Marking failures of layout tests on Webkit Linux Trusty"

This reverts commit 07737e12b6c57778a67005fad06498887d4a960d.

Reason for revert: The CL did not resolve the issue. It seems the tests need to be suppressed in the LeakExpectations file instead.

Original change's description:
> Marking failures of layout tests on Webkit Linux Trusty
> 
> Bug:  821547 
> Change-Id: Idd4bd103a12935599a811a3d02b6f0071637543d
> Reviewed-on: https://chromium-review.googlesource.com/961443
> Commit-Queue: Luna Lu <loonybear@chromium.org>
> Reviewed-by: Luna Lu <loonybear@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#542892}

TBR=loonybear@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  821547 
Change-Id: I9fa56a82a2ddd4e2f7c1b77aa8fce09a8b01b428
Reviewed-on: https://chromium-review.googlesource.com/967521
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543904}
[modify] https://crrev.com/46fa3aaf6c6e106a1f2ea360db7c9e407d742f8a/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 9 by bugdroid1@chromium.org, Mar 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f521160ec2c6bc6159f07b6dcff612aa7347b37c

commit f521160ec2c6bc6159f07b6dcff612aa7347b37c
Author: Karan Bhatia <karandeepb@chromium.org>
Date: Sat Mar 17 02:24:12 2018

Mark failures of layout tests on Webkit Linux Trusty Leak.

BUG= 821547 
TBR=hajimehoshi@chromium.org

Change-Id: I6be988b01770624e793d5571e2dc37400e99c0bd
Reviewed-on: https://chromium-review.googlesource.com/967511
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543919}
[modify] https://crrev.com/f521160ec2c6bc6159f07b6dcff612aa7347b37c/third_party/WebKit/LayoutTests/LeakExpectations

Cc: -karandeepb@chromium.org
Labels: -Sheriff-Chromium
Owner: ----
Status: Untriaged (was: Assigned)
And the bot is green again. Marking as Untriaged for Blink Animation folks to take a look.
Blockedon: -816534

Comment 12 by sunxd@chromium.org, Mar 19 2018

Cc: sunxd@chromium.org flackr@chromium.org smcgruer@chromium.org
Status: Available (was: Untriaged)
Here is the test results of the leaked layout tests: https://test-results.appspot.com/data/layout_results/WebKit_Linux_Trusty_Leak/16697/layout-test-results/results.html

Not sure if this relates to  issue 823022 

Comment 13 by sunxd@chromium.org, Mar 19 2018

Labels: Test-Layout
Cc: linds...@chromium.org
Labels: Hotlist-DisableReview
@flackr can you ptal as this disabled reduces automated test coverage?
Labels: -Pri-1 Pri-2 Type-Bug
Owner: smcgruer@chromium.org
Status: Assigned (was: Available)
I'll take a look at this today; it slipped past our triage due to being directly marked Available + no-owner (and I assume flackr@ missed it in the storm of bugs he is cc'd on :D).

Dropping to P2 as per triage guidelines.
Summary: backdrop-filter-* layout tests fail WebKit Linux Trusty Leak bot (was: Layout tests failing on WebKit Linux Trusty Leak)
Status: Started (was: Assigned)
Test that is leaking is the very last test in the file:

assertComposition({
  property: 'backdrop-filter',
  underlying: 'url(#a) grayscale(50%) blur(20px)',
  addFrom: 'url(#a) grayscale(50%) blur(30px)',
  addTo: 'url(#a) grayscale(25%) blur(40px)',
}, [
  {at: -0.5, is: 'url("#a") grayscale(0.5) blur(30px)'},
  {at: 0, is: 'url("#a") grayscale(0.5) blur(30px)'},
  {at: 0.25, is: 'url("#a") grayscale(0.5) blur(30px)'},
  {at: 0.5, is: 'url("#a") grayscale(0.25) blur(40px)'},
  {at: 0.75, is: 'url("#a") grayscale(0.25) blur(40px)'},
  {at: 1, is: 'url("#a") grayscale(0.25) blur(40px)'},
  {at: 1.5, is: 'url("#a") grayscale(0.25) blur(40px)'},
]);

Notable difference is that this is the only test to reference 'url'. All of the assertions cause a leak, the test can be reduced to the following and still leak:
  
assertComposition({
  property: 'backdrop-filter',
  underlying: 'url(#a) grayscale(50%) blur(20px)',
  addFrom: 'url(#a) grayscale(50%) blur(30px)',
  addTo: 'url(#a) grayscale(25%) blur(40px)',
}, [
  {at: 0, is: 'url("#a") grayscale(0.5) blur(30px)'},
]);


Next step is to break this down into underlying code and build a minimal repro page.
Minimal repro attached:

$ ./out/Release/content_shell --run-layout-test --enable-experimental-web-platform-features --enable-leak-detection /tmp/backdrop_filter_leak.html 
#READY

DevTools listening on ws://127.0.0.1:41181/devtools/browser/3a744761-ef4a-40e9-bccb-c60dbb25d67c
Content-Type: text/plain
layer at (0,0) size 800x600
  LayoutView at (0,0) size 800x600
layer at (0,0) size 800x8
  LayoutBlockFlow {HTML} at (0,0) size 800x8
    LayoutBlockFlow {BODY} at (8,8) size 784x0
      LayoutBlockFlow {DIV} at (0,0) size 784x0
#EOF
#EOF
#LEAK - renderer pid 192448 ({"numberOfLiveDocuments":[1,2],"numberOfLiveNodes":[4,16],"numberOfLivePausableObjects":[2,3],"numberOfLiveResourceFetchers":[1,2]})
#EOF

Even more minified example. Looks like having a fragment-url (e.g. url(#a)) is the root cause. Note that an empty url() or something like url("http://mysite.example.com/mycursor.png") doesn't seem to trigger the leak.
backdrop_filter_leak.html
372 bytes View Download
Note: filter(#a) also works.

It seems like if I specify #a, two ReferenceFilterOperation are created and never cleaned up:

[1:1:0514/110504.579159:INFO:filter_operation.cc(63)] ReferenceFilterOperation 0x2c5e10fb4308, url: "#a", resource: 0x14b3389e6c88
[1:1:0514/110504.580254:INFO:filter_operation.cc(63)] ReferenceFilterOperation 0x2c5e10fb4348, url: "#a", resource: 0x14b3389e6c88
Content-Type: text/plain
layer at (0,0) size 800x600
  LayoutView at (0,0) size 800x600
layer at (0,0) size 800x8
  LayoutBlockFlow {HTML} at (0,0) size 800x8
    LayoutBlockFlow {BODY} at (8,8) size 784x0
      LayoutBlockFlow {DIV} at (0,0) size 784x0
#EOF
#EOF
There are 2 documents currently alive:
- Document 0x3e41cc0c3c90 URL: about:blank
- Document 0x3e41cc0c2848 URL: file:///tmp/backdrop_filter_leak.html


If one uses an empty url():

[1:1:0514/110617.948063:INFO:filter_operation_resolver.cc(145)] Created SVGResource (nil), with tree-scope: 0x7834eb428c8
[1:1:0514/110617.948402:INFO:filter_operation.cc(63)] ReferenceFilterOperation 0x2e8591f742d8, url: "", resource: (nil)
[1:1:0514/110617.948803:INFO:filter_operation_resolver.cc(145)] Created SVGResource (nil), with tree-scope: 0x7834eb428c8
[1:1:0514/110617.949043:INFO:filter_operation.cc(63)] ReferenceFilterOperation 0x2e8591f74318, url: "", resource: (nil)
Content-Type: text/plain
layer at (0,0) size 800x600
  LayoutView at (0,0) size 800x600
layer at (0,0) size 800x8
  LayoutBlockFlow {HTML} at (0,0) size 800x8
    LayoutBlockFlow {BODY} at (8,8) size 784x0
      LayoutBlockFlow {DIV} at (0,0) size 784x0
#EOF
#EOF
[1:1:0514/110618.077651:INFO:filter_operation.cc(68)] ~ReferenceFilterOperation 0x2e8591f742d8
[1:1:0514/110618.077982:INFO:filter_operation.cc(68)] ~ReferenceFilterOperation 0x2e8591f74318
There are 1 documents currently alive:
- Document 0x7834eb43c90 URL: about:blank


Or a non-fragment url:

[1:1:0514/110540.483877:INFO:filter_operation.cc(63)] ReferenceFilterOperation 0x8c8ab6742a8, url: "http://www.google.com", resource: 0x12a26301dd48
[1:1:0514/110540.484465:INFO:filter_operation.cc(63)] ReferenceFilterOperation 0x8c8ab6742e8, url: "http://www.google.com", resource: 0x12a26301de28
Content-Type: text/plain
layer at (0,0) size 800x600
  LayoutView at (0,0) size 800x600
layer at (0,0) size 800x8
  LayoutBlockFlow {HTML} at (0,0) size 800x8
    LayoutBlockFlow {BODY} at (8,8) size 784x0
      LayoutBlockFlow {DIV} at (0,0) size 784x0
#EOF
#EOF
[1:1:0514/110540.583743:INFO:filter_operation.cc(68)] ~ReferenceFilterOperation 0x8c8ab6742a8
[1:1:0514/110540.584010:INFO:filter_operation.cc(68)] ~ReferenceFilterOperation 0x8c8ab6742e8
There are 1 documents currently alive:
- Document 0x1c2ad0e63c90 URL: about:blank


I suspect the SVGResource holds onto the Document (probably its TreeScope member?), but why arent the ReferenceFilterOperation collected in the anchor case? It doesn't feel like anything should be different.
I think I'm nearly there. The current culprit is AnimatableFilterOperations:

https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/animation/animatable/animatable_filter_operations.h?gsn=Create&l=57

It holds a Persistent<FilterOperationsWrapper>, which creates a copy of the passed in FilterOperations (I think?), which then as per #20 and #21 ends up holding a Member<TreeScope> which I believe is the document.

Now I need to understand why the AnimatableFilterOperations doesn't die, although I suspect the answer is a chain from Document --> ... --> AnimatableFilterOperations --> PERSISTENT --> ... --> Document.
Switching to a WeakPersistent<FilterOperationsWrapper> removes the leak, although this might not be the right fix of course. But I think it confirms that we're dealing with a Persistent reference cycle here.
Some more details on the cycle:

1. KeyframeEffectModelBase is a subclass of EffectModel which is GC'd

2. It has a std::unique_ptr<KeyframeGroupMap>, keyframe_groups_.

3. To this we add (https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/animation/keyframe_effect_model.cc?l=245&rcl=656fcdd64468b638cf65b76209a05dd65812070f) a std::unique_ptr<PropertySpecificKeyframeGroup>.

4. KeyframeEffectModelBase::PropertySpecificKeyframeGroup has a Vector<scoped_refptr<Keyframe::PropertySpecificKeyframe>>.

5. To this we add (https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/animation/keyframe_effect_model.cc?l=253&rcl=656fcdd64468b638cf65b76209a05dd65812070f) a StringKeyframe::CSSPropertySpecificKeyframe (https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/animation/string_keyframe.cc?l=149&rcl=fc2fe9d20b1c3088a7f1411d5f13e2b4ec61791e)

6. StringKeyframe::CSSPropertySpecificKeyframe has a scoped_refptr<AnimatableValue>, animatable_value_cache_.

7. AnimatableFilterOperations is a subclass of AnimatableValue.

8. AnimatableFilterOperations has a Persistent<FilterOperationsWrapper>.

9. FilterOperationsWrapper is GC'd.


So there's our bug. From GC to non-GC and back again.
Note: fixing this properly requires (I believe) changing a whole bunch of stuff to be Blink GC'd. I have an in-progress CL for this (https://chromium-review.googlesource.com/c/chromium/src/+/1060693), but it currently crashes on telemetry_perf_unittests (which are unittests of the telemetry infrastructure, *not* of the Chrome binary... in theory) with some sort of Blink GC heap crashes which is very scary. Unfortunately I can't repro them outside of telemetry_perf_unittests :(
Project Member

Comment 26 by bugdroid1@chromium.org, May 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f829e9f194a471dd9a2b8f8def7d228b690026bd

commit f829e9f194a471dd9a2b8f8def7d228b690026bd
Author: Trent Apted <tapted@chromium.org>
Date: Mon May 28 09:40:35 2018

Add animations/interpolation/filter-interpolation-003.html to existing leak expectations

Failed in https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20Leak/19428

Widening failure expectations for an existing group.

TBR=smcgruer@chromium.org

Bug:  821547 
Change-Id: Ica6e0cbc65823e8d792a29dbbc67dc67a628c161
Reviewed-on: https://chromium-review.googlesource.com/1074581
Reviewed-by: Trent Apted <tapted@chromium.org>
Commit-Queue: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562222}
[modify] https://crrev.com/f829e9f194a471dd9a2b8f8def7d228b690026bd/third_party/WebKit/LayoutTests/LeakExpectations

Blockedon: 875044
There is a second cycle here, in the interpolations code:

1. KeyframeEffectModelBase is a subclass of EffectModel which is GC'd

2. It has an InterpolationEffect member

3. InterpolationEffect has a Vector<InterpolationRecord>, and InterpolationRecord has scoped_refptr<Interpolation>

4. InterpolationEffect::AddInterpolationsFromKeyframes creates an InvalidatableInterpolation and saves it in an InterpolationRecord

5. InvalidatableInterpolation::ConvertSingleKeyframe OR InvalidatableInterpolation::MaybeConvertPairwise creates a ConversionCheckers object and saves it in a ConversionCheckers member

6. CSSFilterListInterpolationType::MaybeConvertInherit adds a std::unique_ptr<InheritedFilterListChecker> to the passed in ConversionCheckers

7. InheritedFilterListChecker has a Persistent<FilterOperationsWrapper>

8. FilterOperationsWrapper is GC'd.
Project Member

Comment 29 by bugdroid1@chromium.org, Aug 27

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c

commit da886a9725b3b5f44903354f3cf01a1c7ccb1a0c
Author: Stephen McGruer <smcgruer@chromium.org>
Date: Mon Aug 27 14:45:34 2018

Fix uncollectable reference cycle in blink Animations code

The addition of CSS filter properties as animatable values caused
not one, but two Persistent reference cycles (where we went from
garbage collected classes to non-garbage collected classes and back
again).

The two cycles are documented in  crbug.com/821547#c24  and
 crbug.com/821547#c28 

This CL fixes the reference cycle by making everything in the above
chains GC'd.

Bug:  821547 
Change-Id: I49133875f8a476da1d45cd715d90b74783b15a4f
Reviewed-on: https://chromium-review.googlesource.com/1060693
Commit-Queue: Stephen McGruer <smcgruer@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586259}
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/WebKit/LayoutTests/LeakExpectations
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_double.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_double.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_filter_operations.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_filter_operations.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_transform.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_transform.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_value.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animatable/animatable_value.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animation_sim_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/animation_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/compositor_animations.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/compositor_animations_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/css/css_animatable_value_factory.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/css/css_animatable_value_factory.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/css/css_animation_update.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/css/css_animations.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/effect_input.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/effect_model.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/effect_stack.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/effect_stack_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/inert_effect.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/inert_effect.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/interpolable_value_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/interpolation.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/interpolation_effect.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/interpolation_effect.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/interpolation_effect_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/invalidatable_interpolation.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/keyframe.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/keyframe.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/keyframe_effect.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/keyframe_effect_model.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/keyframe_effect_model.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/keyframe_effect_model_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/keyframe_effect_test.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/sampled_effect.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/sampled_effect.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/string_keyframe.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/string_keyframe.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/transition_interpolation.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/transition_interpolation.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/transition_keyframe.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/animation/transition_keyframe.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/css/resolver/style_resolver.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/css/resolver/style_resolver.h
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/html/html_marquee_element.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/core/inspector/inspector_animation_agent.cc
[modify] https://crrev.com/da886a9725b3b5f44903354f3cf01a1c7ccb1a0c/third_party/blink/renderer/modules/animationworklet/worklet_animation_test.cc

Status: Fixed (was: Started)

Sign in to add a comment