void VideoDecoderManagerChild::Open( Endpoint<PVideoDecoderManagerChild>&& aEndpoint) { // Make sure we always dispatch everything in sRecreateTasks, even if we // fail since this is as close to being recreated as we will ever be. sDecoderManager = nullptr; if (aEndpoint.IsValid()) { RefPtr<VideoDecoderManagerChild> manager = new VideoDecoderManagerChild(); if (aEndpoint.Bind(manager)) { sDecoderManager = manager; manager->InitIPDL(); } } for (Runnable* task : *sRecreateTasks) { task->Run(); } sRecreateTasks->Clear(); }