Closed Bug 1646263 Opened 8 months ago Closed 7 months ago

Introduce a lock in CompositorAnimationStorage regardless of whether the backend is WebRender or not


(Core :: Graphics, enhancement)




Tracking Status
firefox79 --- fixed


(Reporter: hiro, Assigned: hiro)




(8 files)

I'd like to do this separately from bug 1467765. And for WebRender I am going to introduce a sampler class having a reference of an CompositorAnimationStorage (owned by CompositorBridgeParent) and will have another lock for the CompositorAnimationStorage and provides various functions wrapping CompositorAnimationStorage's methods.

The goals here are;

  1. All public methods of CompositorAnimationStorage need to acquire the lock
  2. All the other methods should be private and have a AssertCurrentThreadOwns call to make sure it gets called on the same thread where the public methods are called
Pushed by
Drop nsTArray.h from APZSampler.h. r=kats
Use a proper name for NS_NewRunnableFunction in APZSampler. r=kats
Separate CompositorAnimationStorage from AnimationHelper.[cpp,h]. r=kats
Move the WebRender version of AnimationHelper::SampleAnimations into CompositorAnimationStorage. r=kats
Add CompositorAnimationStorage::CollectWebRenderAnimations. r=kats
Move the non WebRender version of SampleAnimations into CompositorAnimationStorage. r=kats
Make internal-only methods of CompositorAnimationStorage private. r=kats
Introduce a lock in CompositorAnimationStorage. r=kats
You need to log in before you can comment on or make changes to this bug.