W3C home > Mailing lists > Public > whatwg@whatwg.org > June 2013

Re: [whatwg] Challenging canvas.supportsContext

From: Kenneth Russell <kbr@google.com>
Date: Wed, 19 Jun 2013 15:04:32 -0700
Message-ID: <CAMYvS2dEzK3Wh5E9R8d0FZVmHS0KGQ54+R6d=MvK1riMZF+aPA@mail.gmail.com>
To: Brandon Benvie <bbenvie@mozilla.com>
Cc: whatwg <whatwg@lists.whatwg.org>, James Robinson <jamesr@google.com>
On Wed, Jun 19, 2013 at 2:20 PM, Brandon Benvie <bbenvie@mozilla.com> wrote:
> On 6/19/2013 2:05 PM, James Robinson wrote:
>>
>> What would a page using Modernizr (or other library) to feature detect
>> WebGL do if the supportsContext('webgl') call succeeds but the later
>> getContext('webgl') call fails?
>
>
> I don't have an example, I was just explaining how Mozernizr is often used.
>
>
>> I'm also failing to see the utility of the supportsContext() call.  It's
>> impossible for a browser to promise that supportsContext('webgl') implies
>> that getContext('webgl') will succeed without doing all of the expensive
>> work, so any correctly authored page will have to handle a
>> getContext('webgl') failure anyway.
>
>
> Given this, it would seem supportsContext is completely useless. The whole
> purpose of a feature detection check is to detect if a feature actually
> works or not. Accuracy is more important than cost.

supportsContext() can give a much more accurate answer than
!!window.WebGLRenderingContext. I can only speak for Chromium, but in
that browser, it can take into account factors such as whether the GPU
sub-process was able to start, whether WebGL is blacklisted on the
current card, whether WebGL is disabled on the current domain due to
previous GPU resets, and whether WebGL initialization succeeded on any
other page. All of these checks can be done without the heavyweight
operation of actually creating an OpenGL context.

-Ken
Received on Wednesday, 19 June 2013 22:04:56 UTC

This archive was generated by hypermail 2.3.1 : Monday, 13 April 2015 23:09:22 UTC