aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlcanvaselement.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/htmlcanvaselement.rs')
-rw-r--r--components/script/dom/htmlcanvaselement.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index bb35853f706..e412457753a 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -269,11 +269,15 @@ impl HTMLCanvasElement {
.global()
.script_to_constellation_chan()
.send(ScriptMsg::GetWebGPUChan(sender));
- let window = window_from_node(self);
- let channel = receiver.recv().expect("Failed to get WebGPU channel");
- let context = GPUCanvasContext::new(window.upcast::<GlobalScope>(), self, channel);
- *self.context.borrow_mut() = Some(CanvasContext::WebGPU(Dom::from_ref(&*context)));
- Some(context)
+ receiver
+ .recv()
+ .expect("Failed to get WebGPU channel")
+ .map(|channel| {
+ let window = window_from_node(self);
+ let context = GPUCanvasContext::new(window.upcast::<GlobalScope>(), self, channel);
+ *self.context.borrow_mut() = Some(CanvasContext::WebGPU(Dom::from_ref(&*context)));
+ context
+ })
}
/// Gets the base WebGLRenderingContext for WebGL or WebGL 2, if exists.