[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] Firefox 4 and blacklist reporting





----- Original Message -----
> On Mon, Mar 28, 2011 at 11:18 AM, Benoit Jacob <bjacob@mozilla.com>
> wrote:
> > Hi,
> >
> > ________________________________
> >
> > Hi all -- I work on Google Body. Our latest "check WebGL
> > capabilities" code
> > will look approximately like this:
> >     * * *
> >
> > // 0 = OK. 1 = no GL. 2 = GL couldn't initialize. Other = error
> > text.
> > function testGL() {
> >   try {
> >     if (!window.WebGLRenderingContext) { return 1; }
> >     var canvas = document.getElementById('gltest');
> >     var gl = canvas.getContext('webgl');
> >     if (!gl) {
> >       gl = canvas.getContext('experimental-webgl');
> >     }
> >     if (!gl) { return 2; }
> >     return 0;
> >   } catch(err) {
> >     // [report err.message]
> >   }
> > }
> >     * * *
> >
> > Using FF4/Mac on OS X 10.5.8, the above throws an exception, with
> > err.message =
> >     "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)
> > [nsIDOMHTMLCanvasElement.getContext]"
> >
> > I understand from the Firefox blocklist wiki page that Firefox is
> > blacklisting WebGL. I'm curious why this is being reported via an
> > exception.
> >
> > Does the spec say something about that? Or have other browsers
> > agreed on
> > behavior in that case?
> 
> The spec says that getContext() is supposed to return null, not throw
> an exception, and report a webglcontextcreationerror. See
> http://www.khronos.org/registry/webgl/specs/latest/#5.14.3 .

Thanks! I had missed that part. I filed a bug and will try to work on it as soon as I can,
  https://bugzilla.mozilla.org/show_bug.cgi?id=645792

Benoit

> 
> -Ken
> 
> > The problem I'm having is that I want to show different UI for these
> > two
> > cases:
> >   - GL is blacklisted (=> fine, can take user to troubleshooting
> >   page and
> > coach them through it)
> >   - A Javascript error occurred (=> not fine, need to investigate)
> > and I'm not sure what the best way going forward is to distinguish
> > those
> > cases.
> >
> > I think I understand your concern: that adding this try {...} catch
> > block
> > may hide javascript errors. But so far, this had been the standard
> > way of
> > creating WebGL contexts, see the WebGL conformance tests,
> > get.webgl.org,
> > etc.
> >
> > If other browser implementers think that we should not generate JS
> > exceptions in getContext() on blacklisted drivers/systems, I'm not
> > opposed
> > to such a change. Would getContext() then just return null? I
> > couldn't find
> > in the spec anything about errors in getContext and return values?
> >
> > Benoit
> >

-----------------------------------------------------------
You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email:
unsubscribe public_webgl
-----------------------------------------------------------