If a WebGLRenderingContext was created in an unresolved state, then it should appear normal until it is used, at which point it needs to resolve itself. This allows for the common use of feature detection to happen without: - causing a blocking policy resolution - swapping to the discrete GPU on dual GPU systems
Created attachment 224795 [details] Patch
<rdar://problem/16072775>
Comment on attachment 224795 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=224795&action=review The only thing I don't get here is how do we decide we are in a pending state? Does webGLPolicyForURL do something clever? > Source/WebCore/html/canvas/WebGLRenderingContext.cpp:410 > + Extra blank line! > Source/WebCore/html/canvas/WebGLRenderingContext.cpp:3313 > + // FIXME: We don't currently do anything with the result from resolution. A more Should we have a bug filed here so we don't forget about it? > Source/WebCore/html/canvas/WebGLRenderingContext.h:342 > + WebGLRenderingContext(HTMLCanvasElement*, GraphicsContext3D::Attributes); Should this special constructor be private to prevent unintentional use of it outside of the "pending" use case?
(In reply to comment #3) > (From update of attachment 224795 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=224795&action=review > > The only thing I don't get here is how do we decide we are in a pending state? Does webGLPolicyForURL do something clever? > > > Source/WebCore/html/canvas/WebGLRenderingContext.cpp:410 > > + > > Extra blank line! > > > Source/WebCore/html/canvas/WebGLRenderingContext.cpp:3313 > > + // FIXME: We don't currently do anything with the result from resolution. A more > > Should we have a bug filed here so we don't forget about it? Yes. I will file one (although I don't expect we'll fix it soon) > > > Source/WebCore/html/canvas/WebGLRenderingContext.h:342 > > + WebGLRenderingContext(HTMLCanvasElement*, GraphicsContext3D::Attributes); > > Should this special constructor be private to prevent unintentional use of it outside of the "pending" use case? It already is :)
Committed r164452: <http://trac.webkit.org/changeset/164452>