Bug 221163
| Summary: | https://eventshare.co/ camera doesn’t show image | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Dean Jackson <dino> |
| Component: | WebGL | Assignee: | Dean Jackson <dino> |
| Status: | ASSIGNED | ||
| Severity: | Normal | CC: | dino, kbr, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Dean Jackson
This page does some feature detection and decides that we are not a compatible WebGL context. This only reproduces with WebGL 2 enabled.
I traced it a bit, but didn't quite track it down to a particular piece of logic. It uses PixiJS, but I'm not sure if that's the code which is failing.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/73776401>
Dean Jackson
This is the actual radar: rdar://problem/67756671
Kenneth Russell
In DevTools, after clicking the "+" button to start the camera:
photobooth - eventshare.co, source file jeelizFaceFilter.js:
Against a WebGL2RenderingContext:
It looks for ["EXT_color_buffer_float", "WEBGL_color_buffer_float", "OES_color_buffer_float"] (succeeds with EXT_color_buffer_float)
then for ["EXT_color_buffer_half_float", "WEBGL_color_buffer_half_float", "OES_color_buffer_half_float"] (succeeds with EXT_color_buffer_half_float)
then for ["OES_texture_float", "MOZ_OES_texture_float", "WEBKIT_OES_texture_float"] (fails)
then for ["OES_texture_float_linear", "MOZ_OES_texture_float_linear", "WEBKIT_OES_texture_float_linear"] (succeeds)
then for ["OES_texture_half_float", "MOZ_OES_texture_half_float", "WEBKIT_OES_texture_half_float"] (fails)
then for ["OES_texture_half_float_linear", "MOZ_OES_texture_half_float_linear", "WEBKIT_OES_texture_half_float_linear"] (fails)
then for ["OES_texture_half_float", "MOZ_OES_texture_half_float", "WEBKIT_OES_texture_half_float"] (fails)
then for ["EXT_color_buffer_float", "WEBGL_color_buffer_float", "OES_color_buffer_float"] (succeeds with EXT_color_buffer_float)
then for ["EXT_color_buffer_half_float", "WEBGL_color_buffer_half_float", "OES_color_buffer_half_float"] (succeeds with EXT_color_buffer_half_float)
then for ["OES_texture_float", "MOZ_OES_texture_float", "WEBKIT_OES_texture_float"] (fails)
then for ["OES_texture_float_linear", "MOZ_OES_texture_float_linear", "WEBKIT_OES_texture_float_linear"] (succeeds)
then for ["OES_texture_half_float", "MOZ_OES_texture_half_float", "WEBKIT_OES_texture_half_float"] (fails)
then for ["OES_texture_half_float_linear", "MOZ_OES_texture_half_float_linear", "WEBKIT_OES_texture_half_float_linear"] (fails)
then for ["OES_texture_half_float", "MOZ_OES_texture_half_float", "WEBKIT_OES_texture_half_float"] (fails)
then for ["OES_texture_float", "MOZ_OES_texture_float", "WEBKIT_OES_texture_float"] (fails)
...
Chrome returns null for EXT_color_buffer_half_float
Chrome also returns null for OES_texture_half_float_linear (subsumed into WebGL 2.0)
My best guess is that the presence of EXT_color_buffer_half_float - which we added as a concession to iOS - is confusing their code. Have you tried commenting out WebKit's advertising of that extension?