void PaintThread::QueueEndLayerTransaction(SyncObjectClient* aSyncObject) { MOZ_ASSERT(NS_IsMainThread()); RefPtr<CompositorBridgeChild> cbc(CompositorBridgeChild::Get()); if (cbc->NotifyBeginAsyncEndLayerTransaction(aSyncObject)) { RefPtr<PaintThread> self = this; RefPtr<Runnable> task = NS_NewRunnableFunction("PaintThread::AsyncEndLayerTransaction", [self, cbc]() -> void { self->AsyncEndLayerTransaction(cbc); }); #ifndef OMTP_FORCE_SYNC sThread->Dispatch(task.forget()); #else SyncRunnable::DispatchToThread(sThread, task); #endif } }