DescriptionFix a race condition when an IconAnimation is still running at browser shutdown.
Because Extensions are refcounted, they can be destroyed from
~ProfileIOData on the IO thread instead of the UI thread. If an
animation is running at that time, and the ExtensionAction owns its
animations, then the animation's destructor will CHECK-fail while
destroying its Timer, because the Timer has bound itself to the UI
thread.
After this patch, IconAnimationWrappers own themselves, and use
WeakPtrs to indirectly remove themselves from the ExtensionAction. To
limit the size of the ExtensionAction's map, we remove all NULLs each
time we observe a single animation as having finished.
BUG=133141
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=149636
Patch Set 1 #Patch Set 2 : Comment tweak. #
Total comments: 4
Patch Set 3 : Fix nits. #
Messages
Total messages: 5 (0 generated)
|