summaryrefslogtreecommitdiffstats
path: root/gfx/ipc/CanvasManagerChild.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/ipc/CanvasManagerChild.cpp')
-rw-r--r--gfx/ipc/CanvasManagerChild.cpp13
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() {