Bug 221163 - https://eventshare.co/ camera doesn’t show image
Summary: https://eventshare.co/ camera doesn’t show image
Status: ASSIGNED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebGL (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Dean Jackson
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-01-29 16:09 PST by Dean Jackson
Modified: 2021-01-29 16:38 PST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dean Jackson 2021-01-29 16:09:30 PST
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.
Comment 1 Radar WebKit Bug Importer 2021-01-29 16:09:39 PST
<rdar://problem/73776401>
Comment 2 Dean Jackson 2021-01-29 16:10:45 PST
This is the actual radar: rdar://problem/67756671
Comment 3 Kenneth Russell 2021-01-29 16:38:15 PST
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?