The implementations of getContext and supportsContext (once the patch for bug 70117 is landed) in Source/WebCore/html/HTMLCanvasElement.cpp depends on the assumption that the context does not go away upon creation (to prevent JS form seeing a dangling pointer) and disallows the context from being changed once it is created.
Thus, if a 3d context exists for a <canvas> element (by calling canvas.getsContext('webkit-3d') and supportsContext('2d') is subsequently called on that <canvas> element, then canvas.supportsContext('2d') will return false because a 3d context already exists.
Why is that a bug? Isn't that exactly what the spec requires?
(In reply to comment #2)
> Why is that a bug? Isn't that exactly what the spec requires?
Just checked with Dean; you're right.
I believe it was me who gave this erroneous suggestion.