diff options
Diffstat (limited to 'gfx/ipc/CanvasManagerChild.cpp')
-rw-r--r-- | gfx/ipc/CanvasManagerChild.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gfx/ipc/CanvasManagerChild.cpp b/gfx/ipc/CanvasManagerChild.cpp index dee232b6b1..79e607171d 100644 --- a/gfx/ipc/CanvasManagerChild.cpp +++ b/gfx/ipc/CanvasManagerChild.cpp @@ -207,14 +207,15 @@ RefPtr<layers::CanvasChild> CanvasManagerChild::GetCanvasChild() { } RefPtr<webgpu::WebGPUChild> CanvasManagerChild::GetWebGPUChild() { - if (!mWebGPUChild) { - mWebGPUChild = MakeAndAddRef<webgpu::WebGPUChild>(); - if (!SendPWebGPUConstructor(mWebGPUChild)) { - mWebGPUChild = nullptr; - } + if (PWebGPUChild* actor = LoneManagedOrNullAsserts(ManagedPWebGPUChild())) { + return static_cast<webgpu::WebGPUChild*>(actor); } - return mWebGPUChild; + auto actor = MakeRefPtr<webgpu::WebGPUChild>(); + if (!SendPWebGPUConstructor(actor)) { + return nullptr; + } + return actor; } layers::ActiveResourceTracker* CanvasManagerChild::GetActiveResourceTracker() { |