diff --git a/dom/xbl/nsBindingManager.cpp b/dom/xbl/nsBindingManager.cpp index 9102ebcfebee..a485f1673d62 100644 --- a/dom/xbl/nsBindingManager.cpp +++ b/dom/xbl/nsBindingManager.cpp @@ -351,11 +351,15 @@ nsBindingManager::AddToAttachedQueue(nsXBLBinding* aBinding) void nsBindingManager::PostProcessAttachedQueueEvent() { + MOZ_ASSERT(NS_IsMainThread()); + if (!mDocument) { + return; + } mProcessAttachedQueueEvent = NewRunnableMethod("nsBindingManager::DoProcessAttachedQueue", this, &nsBindingManager::DoProcessAttachedQueue); - nsresult rv = NS_DispatchToCurrentThread(mProcessAttachedQueueEvent); - if (NS_SUCCEEDED(rv) && mDocument) { + nsresult rv = mDocument->EventTargetFor(TaskCategory::Other)->Dispatch(do_AddRef(mProcessAttachedQueueEvent)); + if (NS_SUCCEEDED(rv)) { mDocument->BlockOnload(); } }