Issue metadata
Sign in to add a comment
|
backdrop-filter-* layout tests fail WebKit Linux Trusty Leak bot |
||||||||||||||||||||||||
Issue descriptionFiled 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
,
Mar 14 2018
,
Mar 14 2018
,
Mar 16 2018
,
Mar 17 2018
Issue 822974 has been merged into this issue.
,
Mar 17 2018
The CL in c#1 seems to have not suppressed the leaks. Think this needs to be suppressed in the LeakExpectations file.
,
Mar 17 2018
Will land https://chromium-review.googlesource.com/c/chromium/src/+/967521 followed by https://chromium-review.googlesource.com/c/chromium/src/+/967511
,
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
,
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
,
Mar 17 2018
And the bot is green again. Marking as Untriaged for Blink Animation folks to take a look.
,
Mar 17 2018
,
Mar 19 2018
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
,
Mar 19 2018
,
Mar 28 2018
@flackr can you ptal as this disabled reduces automated test coverage?
,
May 14 2018
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.
,
May 14 2018
,
May 14 2018
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.
,
May 14 2018
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
,
May 14 2018
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.
,
May 14 2018
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.
,
May 14 2018
Ah, so note that in the #a case we get a LocalSVGResource (https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/css/resolver/element_style_resources.cc?l=103&rcl=20976ed76a78951ac2a65789a03fd275e46af0f9), which has a Member<TreeScope>, but in the "http://www.google.com" we get an ExternalSVGResource (https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/css/resolver/element_style_resources.cc?l=108&rcl=20976ed76a78951ac2a65789a03fd275e46af0f9) which doesn't.
,
May 14 2018
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.
,
May 14 2018
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.
,
May 14 2018
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.
,
May 18 2018
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 :(
,
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
,
Aug 17
,
Aug 22
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.
,
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
,
Aug 27
|
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by bugdroid1@chromium.org
, Mar 13 2018