aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/offscreencanvas.rs12
-rw-r--r--components/script/dom/webidls/OffscreenCanvas.webidl2
2 files changed, 8 insertions, 6 deletions
diff --git a/components/script/dom/offscreencanvas.rs b/components/script/dom/offscreencanvas.rs
index d820149a7b0..2be33688afc 100644
--- a/components/script/dom/offscreencanvas.rs
+++ b/components/script/dom/offscreencanvas.rs
@@ -15,7 +15,7 @@ use crate::dom::bindings::cell::{ref_filter_map, DomRefCell, Ref};
use crate::dom::bindings::codegen::Bindings::OffscreenCanvasBinding::{
OffscreenCanvasMethods, OffscreenRenderingContext,
};
-use crate::dom::bindings::error::Fallible;
+use crate::dom::bindings::error::{Error, Fallible};
use crate::dom::bindings::reflector::{reflect_dom_object_with_proto, DomObject};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
@@ -157,18 +157,20 @@ impl OffscreenCanvasMethods for OffscreenCanvas {
_cx: JSContext,
id: DOMString,
_options: HandleValue,
- ) -> Option<OffscreenRenderingContext> {
+ ) -> Fallible<Option<OffscreenRenderingContext>> {
match &*id {
- "2d" => self
+ "2d" => Ok(self
.get_or_init_2d_context()
- .map(OffscreenRenderingContext::OffscreenCanvasRenderingContext2D),
+ .map(OffscreenRenderingContext::OffscreenCanvasRenderingContext2D)),
/*"webgl" | "experimental-webgl" => self
.get_or_init_webgl_context(cx, options)
.map(OffscreenRenderingContext::WebGLRenderingContext),
"webgl2" | "experimental-webgl2" => self
.get_or_init_webgl2_context(cx, options)
.map(OffscreenRenderingContext::WebGL2RenderingContext),*/
- _ => None,
+ _ => Err(Error::Type(String::from(
+ "Unrecognized OffscreenCanvas context type",
+ ))),
}
}
diff --git a/components/script/dom/webidls/OffscreenCanvas.webidl b/components/script/dom/webidls/OffscreenCanvas.webidl
index 110af8a8f99..04c28f989a5 100644
--- a/components/script/dom/webidls/OffscreenCanvas.webidl
+++ b/components/script/dom/webidls/OffscreenCanvas.webidl
@@ -19,7 +19,7 @@ interface OffscreenCanvas : EventTarget {
attribute [EnforceRange] unsigned long long width;
attribute [EnforceRange] unsigned long long height;
- OffscreenRenderingContext? getContext(DOMString contextId, optional any options = null);
+ [Throws] OffscreenRenderingContext? getContext(DOMString contextId, optional any options = null);
//ImageBitmap transferToImageBitmap();
//Promise<Blob> convertToBlob(optional ImageEncodeOptions options);
};