RESOLVED FIXED 88439
[chromium] Fix race condition where animations start, finish and are deleted on the composite thread, all before the start even arrives on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=88439
Summary [chromium] Fix race condition where animations start, finish and are deleted ...
vollick
Reported 2012-06-06 11:56:52 PDT
An animation can currently finish on the impl thread and be disposed before the start event arrives on the main thread. Code needs to be put in place to address this.
Attachments
Patch (9.85 KB, patch)
2012-06-13 11:22 PDT, Eric Penner
no flags
IsFinished_Changes (9.37 KB, patch)
2012-06-13 16:05 PDT, Eric Penner
no flags
Eric Penner
Comment 1 2012-06-13 11:22:16 PDT
vollick
Comment 2 2012-06-13 12:34:41 PDT
Comment on attachment 147368 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=147368&action=review LGTM, with a few nits. Looks like the original code duplicated the logic of isFinished in a couple of places. Thanks for doing this. > Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp:87 > + if (m_runState == Finished || m_runState == Aborted || m_runState == WaitingForDeletion) if (isFinished()) > Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:193 > + && m_activeAnimations[i]->runState() != CCActiveAnimation::WaitingForDeletion) if (!m_activeAnimations[i]->isFinished()) > Source/WebCore/platform/graphics/chromium/cc/CCLayerAnimationController.cpp:256 > + && m_activeAnimations[i]->runState() != CCActiveAnimation::WaitingForDeletion) if (!m_activeAnimations[i]->isFinished())
Eric Penner
Comment 3 2012-06-13 16:05:00 PDT
Created attachment 147439 [details] IsFinished_Changes
WebKit Review Bot
Comment 4 2012-06-14 07:57:24 PDT
Comment on attachment 147439 [details] IsFinished_Changes Clearing flags on attachment: 147439 Committed r120326: <http://trac.webkit.org/changeset/120326>
WebKit Review Bot
Comment 5 2012-06-14 07:57:29 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.