web animations with "easing" freeze tab with large numbers |
|||||||||
Issue descriptionVersion: 51.0.2704.84 OS: Linux If an animation's first keyframe has an 'easing' other than 'linear', setting the animation's playbackRate and duration to something huge pegs the CPU and locks up the tab. Example (may freeze): https://jsfiddle.net/20cn4z9t/1/ Is this WAI? var d = document.querySelector('div'); var a = d.animate([{ height: '100px', easing: 'ease-out', }, { height: '200px', }], { duration: 1e+308, // assumes 1e+308 < Number.MAX_VALUE < 1e+309}); }); a.playbackRate = 1e+20; setTimeout(function(){ d.innerText = 'One second later'; // doesn't get called }, 1000);
,
Jun 15 2016
,
Jun 15 2016
,
Jun 15 2016
,
Jun 15 2016
Probably we want to erase that adaptive accuracy in blink and make it fixed as in cc.
,
Jul 4 2016
,
Aug 9 2016
,
Aug 24 2016
,
Aug 25 2016
,
Aug 25 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c2b0a31002ae8b6706dc9abde3dfa88b68e78960 commit c2b0a31002ae8b6706dc9abde3dfa88b68e78960 Author: loyso <loyso@chromium.org> Date: Thu Aug 25 23:11:41 2016 Blink Animation: Limit maximum accuracy to avoid hanging for long durations. BUG= 620137 Review-Url: https://codereview.chromium.org/2272303002 Cr-Commit-Position: refs/heads/master@{#414576} [modify] https://crrev.com/c2b0a31002ae8b6706dc9abde3dfa88b68e78960/third_party/WebKit/Source/platform/animation/AnimationUtilities.h [modify] https://crrev.com/c2b0a31002ae8b6706dc9abde3dfa88b68e78960/ui/gfx/geometry/cubic_bezier.cc [modify] https://crrev.com/c2b0a31002ae8b6706dc9abde3dfa88b68e78960/ui/gfx/geometry/cubic_bezier.h
,
Aug 25 2016
|
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by alancutter@chromium.org
, Jun 15 2016Status: Available (was: Untriaged)
AnimationUtilities.h: inline double accuracyForDuration(double duration) { return 1.0 / (200.0 * duration); } This is probably returning 0 and causing infinite loops.