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

Re: [Public WebGL] Blacklisting and get.webgl.org





On Sun, Feb 13, 2011 at 2:38 PM, Benoit Jacob <bjacob@mozilla.com> wrote:



----- Original Message -----
> Well, the blacklisting of my driver just rolled in with the latest
> Firefox nightly...and I can report that the blacklist definitely
> works!
>
> One thing that bothers me though is that my web site does the usual
> WebGL detection - finds a problem and punts the user off to
> http://get.webgl.org - which (of course) tells me:
>
> Your browser doesn't appear to support WebGL.
> An up-to-date list of browsers that do support WebGL, is available
> here.
>
> ...which of course is untrue. My browser DOES support WebGL - and it's
> on the "available here" list. So this web page is definitely going to
> confuse our users. Ideally, it needs to say that my graphics card
> driver is out of date and provide a convenient link back to nVidia's
> site to upgrade it...but without being able to get useful data out of
> the VENDOR/RENDERER/VERSION strings - that's going to be impossible in
> Firefox.

One wouldn't want to implement this at the level of the website, anyway.

What could be useful is if canvas.getContext generated an error message string for the website to show the user.

I'm not sure what the API for this could look like (maybe just let getContext pass this string as an exception?), but if an API can be agreed on, that would be easy to implement, since we already have the code generating this string and it's already exposed to _javascript_ (we use it in about:support).

The API already does this.

#1) Check if your browser supports webgl

 if (!window.WebGLRenderingContext) 
    // this browser does not support webgl. Send to get.webgl.org

#2) Try to get a context and handle the error

canvas.addEventListener("webglcontextcreationerror", handleError, false);
ctx = canvas.getContext("webgl");
if (!ctx) {
return; // do nothing if null is returned. The spec REQUIRES that a
// webglcontextcreationerror event generated.
  }

  function handleError(event) {
     // display event.message to user and/or send the user to get.webgl.org/troubleshooting (which needs to be filled in)
  }






 

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
-----------------------------------------------------------