On Sep 10, 2012, at 9:32 PM, Dean Jackson <[email protected]> wrote: > > On Sep 10, 2012, at 12:28 PM, Tobie Langel <[email protected]> wrote: > >> On Sep 10, 2012, at 8:14 PM, Dean Jackson <[email protected]> wrote: >> >>> I propose adding a new method to HTMLCanvasElement: >>> >>> interface HTMLCanvasElement : HTMLElement { >>> boolean supportsContext(DOMString contextId, any... arguments); >>> }; >>> >>> supportsContext takes the same parameters as getContext, and simply returns >>> true if the corresponding call to getContext would have returned a valid >>> context, false otherwise. >> >> What about enabling feature detection by providing a method per context? >> >> interface HTMLCanvasElement : HTMLElement { >> object get2DContext(); >> object getWebGLContext(any... args); >> }; >> >> That way, developers can use idiomatic JS for feature testing like >> pretty much everywhere else on the Web platform: >> >> if (canvas.get2DContext) { >> // do stuff with 2D canvas >> } > > This doesn't address the problem we are hitting, which is that > it is expensive to create a context.
It does. Only expose the API when you can create the context. > It's also a big change to > an existing operational API. Agreed. You can always leave the previous method around for backward compatibility. --tobie
